在颤动中触发通知的最佳方法

Posted

技术标签:

【中文标题】在颤动中触发通知的最佳方法【英文标题】:Best way to trigger notification in flutter 【发布时间】:2019-12-12 04:06:06 【问题描述】:

我的 Flutter 应用允许用户安排活动,并需要在时间到来时通知他们。这些事件涉及多个用户,可能会被删除。我正在寻找触发通知的最佳方式。

到目前为止,我已经找到了 2 个可以实现此目的的包:firebase_messagingflutter_local_notifications

有了firebase_messaging,我想到了创建一个云函数,当在firestore中创建一个事件时会触发它,它安排另一个云函数在事件期间运行,检查事件是否仍然存在于firestore中,并触发相应的通知。但是,我不确定是否可以从另一个内部安排云功能。

对于flutter_local_notifications,我的问题是用户 B 可能会创建涉及用户 A 的事件,或者可能会在用户 A 的应用程序保持终止时删除该事件。因此,用户 A 的预定通知无法进行相应调整。

你认为最好的方法是什么?

【问题讨论】:

“但是,我不确定是否可以从另一个内部安排云功能。” -> 您可以使用 Cloud Pub/Sub 触发器,请参阅 firebase.google.com/docs/functions/pubsub-events。在第一个 CF 中,您将 Pub/Sub 消息发送到将触发第二个 CF 的特定主题。 Pub/Sub 不会立即触发第二个 CF 吗?我需要安排第二个 CF 在第一个 CF 中的某个时间(例如 2019 年 1 月 1 日 10:00)触发。 是的,Pub/Sub 将立即触发第二个 CF。如果您想在某个(可变)时间触发另一个 CF,您可以在具有日期/时间的特定集合中编写一个文档,并有一个计划的 CF (firebase.google.com/docs/functions/schedule-functions) 定期检查某些日期/时间值是否此集合的文档不如当前日期/时间。 我的问题是 CF 需要每分钟运行一次,我发现这在成本方面非常低效,大多数事件可能发生在一天中的特定几个小时内。 我明白了......但是请注意,每分钟运行一次对应于大约。每月 43200 次调用,免费套餐为每月 125000 次调用。 【参考方案1】:

如果您需要涉及多人,颤动本地通知不适合您。它不是为此而构建的。

【讨论】:

您能提出替代解决方案吗? Firebase 是更好的选择 非常感谢您的回复,但是,如果您希望您的回答被接受,请在其中指定具体的解决方案。

以上是关于在颤动中触发通知的最佳方法的主要内容,如果未能解决你的问题,请参考以下文章

在颤动中显示通知的最简单方法?

颤动的firebase身份验证提供者未通知

如何在应用程序关闭时在颤动中执行后台任务?

如何在颤动中允许浮动通知和锁定屏幕通知编程

本地通知颤动

单击通知按钮不会在颤动中打开应用程序