>

Firebase Firestore를 사용하는 앱을 개발 중입니다. 매일 자정에 우리는 counter 의 가치를 설정하고 싶습니다   1 에 재산  모든 User 에 대해  컬렉션의 문서.

클라우드 기능은 이에 대한 합리적인 선택으로 보였고, 클라우드 기능을 예약 할 수있는 방법을 신속하게 찾았습니다.

exports.incrementCounterNightly = functions.pubsub.schedule('0 0 * * *')
  .timeZone('Europe/London')
  .onRun((context) => {
  console.log('This will be run every day at 00:00 AM London Time!');
});

우리가 쓰고 싶은 문서의 경로는 모음/사용자/*입니다.

질문은 :

  • 클라우드 기능 내에서이를 달성하는 가장 좋은 방법은 무엇입니까?
  • 구름 기능이 적절하게 달성 할 수있는 것입니까?
  • 확장 가능합니까? 사용자 모음이 100,000 개 또는 5,000,000 개의 문서로 증가하면 어떻게 되나요?

미리 감사합니다.

에드


  • 답변 # 1

    비용과 프로그래밍 제약 때문에 데이터를 다른 방식으로 구성하는 것을 고려해야합니다.

    유스 케이스를 위해 할 수있는 일은 사용자 당 사용 된 "슈퍼 좋아요"의 원시 수를 저장하는 것이 아니라 날짜가있는 별도의 문서에 일일 슈퍼 좋아요를 저장하는 것입니다.

    따라서 오늘날 사용자가 사용한 슈퍼 좋아요 수를 쿼리하려는 경우 사용자 "superlikes"하위 컬렉션을 쿼리 할 수 ​​있습니다. 마지막 초 유명 날짜와 사용 된 문서 수와 함께 단일 문서가 있어야합니다.

    오늘날 사용한 문서 수를 쿼리 할 때 ... 날짜가 다른 경우 문서가 다른 날짜가 0 인 경우 문서를 가져 오십시오 (오늘 날짜가 아니기 때문에) 오늘 날짜가있는 경우 카운트를보십시오.

    그러면 사용자가 수퍼 유사를 사용할 때 해당 문서로 돌아갈 수 있습니다. 개수를 1로 설정하고 날짜를 오늘 날짜로 설정하십시오. 아니면 날짜 수가 이미 오늘 증가한 것입니다.

    설명한 내용에 대해 궁금한 점이 있으면 알려주세요.

관련 자료

  • 이전 c - OpenSSL 111에서 DTLS 서버를 사전에 준비하는 방법
  • 다음 kotlin - 언제, 어떻게 안드로이드 Activity에서 suspend 함수를 호출합니까?