来自 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 帐户可能不同。另一件事是我想以某种方式实现它,以便它可以在 iosandroid 上运行。

    我想创建一个后台服务,每天或一天运行多次以获取当天的约会,并且获取的约会将保存在 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)中的提醒通知的主要内容,如果未能解决你的问题,请参考以下文章

Firebase 列表查询 (Android)

iOS 应用未收到来自 Firebase 的后台推送通知

在 android 8+ 上收到来自 firebase 的推送时应用程序崩溃

Flutter 中来自 Firebase 的应用检查不起作用

错误:当有来自 firebase 的通知时,我没有收到铃声

如何在 Android 中使用适配器显示来自 Firebase 的组列表?