Firebase计划推送通知

时间:2019-11-17 21:43:29

标签: swift firebase google-cloud-firestore firebase-cloud-messaging google-cloud-functions

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

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

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

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

1 个答案:

答案 0 :(得分:0)

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

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

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