swift - Firebase 计划推送通知

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

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

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/

相关文章:

ios - 搜索包含特定日期属性的核心数据数组的索引

ios - Swift:线程中的 URLRequest

swift - IOS Swift - 从 Firebase 数据库中的不同节点获取值

swift - observerSingleEvent 函数未与 Firebase 一起运行

firebase - 如何删除 DocumentSnapshot 事件的监听器 (Google Cloud FireStore)

ios - NSManagedObjectContext - FetchRequest 死锁

ios - 是否可以从 IOS 项目中导出 IOS 框架?

javascript - 从 firebase 的 onCall 函数返回 promise 的正确方法?

android - Firebase Analytics 在我的应用中不起作用

angular - 在 Firestore 中使用 Angular 删除集合中的文档