在我的项目中,当每个用户进入应用程序(Swift-iOS)时,他们会将其时间戳字段更新为当前时间之后的24小时。 Firestore中的数据树如下所示。每个用户数据都作为文档包含在“用户”集合中。

users-collection
   user1-document
     username: nameA
     timestamp: 1574102072
   user2-document
     username: nameB
     timestamp: 1574102234


除非他们在24小时内再次登录应用程序,并且基于注册时间戳记的时间到了,否则我要发送推送通知(FCM)。

我已经计划安排云功能,但是在那一刻,云功能必须定期读取太多文档(例如,每5分钟),并找到结束的时间戳以发送通知。这确实是昂贵的方法。有没有其他方法可以解决此问题?

最佳答案

我建议您让查询按时间过滤文档,而不是查询整个集合并在客户端上检查时间,这样您就只能获取所需的文档。请参阅documentation。例如:

usersRef = db.collection('users').where('timestamp', '>', current_time);


如果将结果集限制为仅查找实际需要的文档,则查询将更快,更便宜。

关于swift - Firebase计划推送通知,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58905489/

10-12 14:36