使用发布/订阅或云任务每5秒更新firebase数据库值?

使用发布/订阅或云任务每5秒更新firebase数据库值?,firebase,firebase-realtime-database,google-cloud-firestore,google-cloud-functions,Firebase,Firebase Realtime Database,Google Cloud Firestore,Google Cloud Functions,我是Firebase的新手,我完全不知道应该使用什么。这是我的流程 我在firebase上有一个集合score,它有值 - start_time - count - max_count 现在,当start\u time与当前时间匹配时,我需要每五秒钟增加count,直到它与数据库匹配max\u count。这应该在后端。现在我弄糊涂了。什么适合这个 关于云任务和发布/订阅的文档太多了 如果我从Pub/Sub调用firebase函数以每5秒更新一次计数,那么我将为调用函数的未使用计算时间付费 我

我是Firebase的新手,我完全不知道应该使用什么。这是我的流程

我在firebase上有一个集合
score
,它有值

- start_time
- count
- max_count
现在,当
start\u time
与当前时间匹配时,我需要每五秒钟增加
count
,直到它与数据库匹配
max\u count
。这应该在后端。现在我弄糊涂了。什么适合这个

关于云任务和发布/订阅的文档太多了

如果我从Pub/Sub调用firebase函数以每5秒更新一次计数,那么我将为调用函数的未使用计算时间付费


我不知道云任务是否符合我的要求?有人能指导我吗?

云任务和发布/订阅都不是解决这一问题的正确解决方案,我不建议使用cron类型的服务来完成这样一项琐碎的任务

请考虑将增量逻辑移动到客户端,只需在数据库中存储<代码> StaskTime和<代码> Max Survivs/Cuth>。下面是一个例子:

//让我们在未来10秒内设置一个开始时间,并假设它在数据库中
const start_time=Math.floor((新日期()).getTime()/1000)+10;
//假设这来自数据库,我们只想迭代10次
常量最大计数=10;
让prev_count=0;
文档。写入(“启动前等待10秒
”; //让我们每秒迭代一次,直到到达开始时间 let interval=setInterval(()=>{ const now=Math.floor((new Date()).getTime()/1000); //如果不是开始时间,退出 如果(现在<开始时间)返回; //通过除以5秒确定计数 让计数=数学地板((现在-开始时间)/5); 如果(计数>上一次计数){ document.write(`Tick:${count}
`); } 上一次计数=计数; 如果(计数>=最大计数){ 间隔时间; }
}, 1000);感谢您的回复,但我需要在后端执行增量操作,一旦计数更新为新值,值将更新为所有用户。无论用户是否使用该应用程序,但计数将从后端开始递增。上述答案的要点是帮助您了解,无论是前端还是后端客户端,无论何时连接,都可以轻松计算使用开始时间的计数,而无需求助于cron作业。另一种方法是设置云调度器和一个每秒执行一次的云函数,每天执行一次,并希望它不会跳过一个节拍。在微服务架构中,它不是一个可扩展的选项。