Firebase应用程序(Android或iOS)中的提醒通知

Firebase应用程序(Android或iOS)中的提醒通知,android,ios,firebase,firebase-realtime-database,database-trigger,Android,Ios,Firebase,Firebase Realtime Database,Database Trigger,我想在我的应用程序中实现提醒通知。 在应用程序中,用户可以通过选择日期和时间来添加约会。这些约会保存在Firebase实时数据库中。 数据库结构: /appoints/{user\u id} 现在我想添加通知/提醒功能,以便用户在当天预约时间之前收到通知 我脑海中的想法: 在谷歌日历中创建/更新时保存每个约会。这样谷歌日历就能处理提醒了。但问题是,用户可以在多台设备上使用该应用程序,而两台设备上的谷歌账户可能不同。另一件事是,我想以一种既能在iOS上运行又能在Android上运行的方式来实现它

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

数据库结构:

/appoints/{user\u id}

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

我脑海中的想法:

  • 谷歌日历中创建/更新时保存每个约会。这样谷歌日历就能处理提醒了。但问题是,用户可以在多台设备上使用该应用程序,而两台设备上的谷歌账户可能不同。另一件事是,我想以一种既能在iOS上运行又能在Android上运行的方式来实现它

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

  • 从服务器发送通知,因为这将解决Android和iOS平台的问题

    a。但这里的问题是如何检查Firebase服务器上每个用户的预约?用户群已经有约500000个用户

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

    c。如果我在服务器中设置了一个Cron作业,它将检查用户的预约,但是根据用户数量,该Cron作业将花费大量时间。而且Cron作业需要每分钟运行一次,因为预约时间可以是一小时内的任何时间

  • 因此,我需要知道如何实现此功能?什么是最好和适当的方式? 请告诉我你的建议


    谢谢

    我不确定这是否是实现这一点的最佳方式,但这里是我每天在0000小时发送通知提醒的方式

    您可以创建另一个集合来存储提醒,而不是查看所有用户以检查约会。(我使用了Firestore,但它可以与RTDB一起使用)。该集合包含具有userID和rementerDate的文档,有关约会的其余信息可以单独存储。 要在前一天通知用户,只需将提醒日期设置为实际约会日期-1天


    对于cronjob,我使用了。它将每天在0000hrs启动,并运行查询以获取所有文档(如果rementerDate==currentDate),将所有用户标识存储到一个数组中。接下来,检索所有用户的设备令牌并通过FCM发送通知。

    我不确定这是否是实现此功能的最佳方法,但以下是我每天在0万小时发送通知提醒的方法

    您可以创建另一个集合来存储提醒,而不是查看所有用户以检查约会。(我使用了Firestore,但它可以与RTDB一起使用)。该集合包含具有userID和rementerDate的文档,有关约会的其余信息可以单独存储。 要在前一天通知用户,只需将提醒日期设置为实际约会日期-1天


    对于cronjob,我使用了。它将每天在0000hrs启动,并运行查询以获取所有文档(如果rementerDate==currentDate),将所有用户标识存储到一个数组中。接下来,检索所有用户的设备令牌并通过FCM发送通知。

    是的,我还认为应该根据预约时间为用户创建一个单独的节点。然后Cron作业将只处理这些用户。另一个解决方案可能是
    云任务
    ,因为我阅读了文章并分享了我的回答是的,我还认为应该根据预约时间为用户创建一个单独的节点。然后Cron作业将只处理这些用户。另一个解决方案可以是
    cloudtask
    ,我阅读了这篇文章并分享了我的回答