来自 Firebase 的应用(Android 或 iOS)中的提醒通知
Posted
技术标签:
【中文标题】来自 Firebase 的应用(Android 或 iOS)中的提醒通知【英文标题】:Reminder Notifications in App (Android or iOS) from Firebase 【发布时间】:2020-08-30 18:02:44 【问题描述】:我想在我的应用程序中实现提醒通知。 在应用程序中,用户可以通过选择日期和时间来添加约会。这些约会保存在 Firebase 实时数据库中。
数据库结构:
/appointments/user_id
现在我想添加通知/提醒功能,以便用户在当天的约会时间之前收到通知。
我的想法:
在 Google 日历 中创建/更新每个约会时保存。这样 Google 日历就会处理这些提醒。但问题是,用户可以在多台设备上使用该应用程序,并且两台设备上的 Google 帐户可能不同。另一件事是我想以某种方式实现它,以便它可以在 ios 和 android 上运行。
我想创建一个后台服务,每天或一天运行多次以获取当天的约会,并且获取的约会将保存在 Google 日历中。这将解决用户在多个设备上使用该应用程序的问题。但这里又是后台服务的问题。我相信这个后台服务不会在 iOS 上正常工作。
从服务器发送通知,因为它将解决 Android 和 iOS 平台的问题。
一个。但这里的问题是如何从 Firebase 检查服务器上每个用户的约会?用户群已经是约 500,000 名用户。
b.如何在 Firebase 实时数据库中添加触发器,以便属于该约会的用户可以收到通知。
c。如果我在服务器中设置了一个 Cron 作业,它将检查用户的约会,但该 Cron 作业将花费大量时间,具体取决于用户数量。并且该 Cron Job 需要每分钟运行一次,因为预约时间可以在一个小时内。
所以我需要知道如何实现这个功能?什么是最好和合适的方法? 请告诉我您的建议。
谢谢
【问题讨论】:
【参考方案1】:我不确定这是否是实现此功能的最佳方式,但这是我每天在 0000 时发送通知提醒的方式。
您无需查看所有用户来检查约会,而是创建另一个集合来存储提醒。 (我使用了 Firestore,但它适用于 RTDB)。该集合包含带有 userID 和remindDate 的文档,有关约会的其余信息可以单独存储。 提前一天通知用户,只需将reminderDate设置为实际预约日期——1天即可。
对于 cronjob,我使用了scheduled functions。它将在每天 0000 时触发并运行查询以获取所有文档(如果提醒日期 == 当前日期),将所有用户 ID 存储到一个数组中。接下来,检索所有用户的设备令牌并通过 FCM 发送通知。
【讨论】:
是的,我也想根据约会时间为用户创建一个单独的节点。然后 Cron 作业将只处理这些用户。 另一种解决方案可能是Cloud Task
,因为我阅读了文章medium.com/firebase-developers/… 并分享了我的回复medium.com/@DeepakDroid/how-about-this-idea-3f8e5c05f601以上是关于来自 Firebase 的应用(Android 或 iOS)中的提醒通知的主要内容,如果未能解决你的问题,请参考以下文章
在 android 8+ 上收到来自 firebase 的推送时应用程序崩溃