【问题标题】:Reminder Notifications in App (Android or iOS) from Firebase来自 Firebase 的应用(Android 或 iOS)中的提醒通知
【发布时间】:2020-08-30 18:02:44
【问题描述】:

我想在我的应用程序中实现提醒通知。 在应用程序中,用户可以通过选择日期和时间来添加约会。这些约会保存在 Firebase 实时数据库中。

数据库结构:

/appointments/{user_id}

现在我想添加通知/提醒功能,以便用户在当天的约会时间之前收到通知。

我的想法:

  1. Google 日历 中创建/更新每个约会时保存。这样 Google 日历就会处理这些提醒。但问题是,用户可以在多台设备上使用该应用程序,并且两台设备上的 Google 帐户可能不同。另一件事是我想以某种方式实现它,以便它可以在 iOS 和 Android 上运行。

  2. 我想创建一个后台服务,每天或一天运行多次以获取当天的约会,并且获取的约会将保存在 Google 日历中。这将解决用户在多个设备上使用该应用程序的问题。但这里又是后台服务的问题。我相信这个后台服务不会在 iOS 上正常工作。

  3. 从服务器发送通知,因为它将解决 Android 和 iOS 平台的问题。

    一个。但这里的问题是如何从 Firebase 检查服务器上每个用户的约会?用户群已经是约 500,000 名用户。

    b.如何在 Firebase 实时数据库中添加触发器,以便属于该约会的用户可以收到通知。

    c。如果我在服务器中设置了一个 Cron 作业,它将检查用户的约会,但该 Cron 作业将花费大量时间,具体取决于用户数量。并且该 Cron Job 需要每分钟运行一次,因为预约时间可以在一个小时内。

所以我需要知道如何实现这个功能?什么是最好和合适的方法? 请告诉我您的建议。

谢谢

【问题讨论】:

    标签: android ios firebase firebase-realtime-database database-trigger


    【解决方案1】:

    我不确定这是否是实现此功能的最佳方式,但这是我每天在 0000 时发送通知提醒的方式。

    您无需查看所有用户来检查约会,而是创建另一个集合来存储提醒。 (我使用了 Firestore,但它适用于 RTDB)。该集合包含带有 userID 和remindDate 的文档,有关约会的其余信息可以单独存储。 提前一天通知用户,只需将reminderDate设置为实际预约日期——1天即可。

    对于 cronjob,我使用了scheduled functions。它将在每天 0000 时触发并运行查询以获取所有文档(如果提醒日期 == 当前日期),将所有用户 ID 存储到一个数组中。接下来,检索所有用户的设备令牌并通过 FCM 发送通知。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-01
    相关资源
    最近更新 更多