使用 Firebase 实时数据库的 Flutter 通知

Flutter Notifications with Firebase Realtime Database

我有一个与 Firebase 实时数据库集成的 Flutter 应用程序。 我想要一个通知(如果可能的话,实际上是一种警报),当数据库中的一个项目(我们称之为警报)设置为“真”时。我总是看到 firebase_messaging 通知插件,但我不确定我是否应该使用这个插件,尽管我的应用程序与消息传递没有任何关系。

我对 Flutter 和 Firebase 都是全新的,你能告诉我如何 监听 数据库即使应用程序不是 运行 吗?

顺便说一下,我目前只为 Android 构建应用程序,但我希望将来也为 IOS 构建它。 谢谢。

您可以 use/write firebase 云功能。使用 firebase 云函数,您可以观看任何 document/field 并尝试编写触发逻辑,例如如果某个字段设置为 true,则此云函数将通过 firebase 消息传递发出通知。

https://firebase.flutter.dev/docs/functions/overview/

当用户不主动使用应用程序时,没有可靠的方法可以继续监听 Firebase 实时数据库中的变化。要在这种情况下通知用户数据库的更改,您需要在始终在线的环境中侦听这些更改,然后通过 Firebase Cloud Messaging 向用户发送消息。

一个始终存在的环境是 Cloud Functions,它也是 Firebase 的一部分,它允许您在 Google 的服务器上 运行 一小段 JavaScript 代码响应您的 Firebase 项目中发生的事情。 Cloud Functions for Firebase 的文档作为如何 notify the user when something interesting happens in the database:

的示例

Developers can use Cloud Functions to keep users engaged and up to date with relevant information about an app. Consider, for example, an app that allows users to follow one another's activities in the app. Each time a user adds themselves as a follower of another user, a write occurs in the Realtime Database. Then this write event could trigger a function to create Firebase Cloud Messaging (FCM) notifications to let the appropriate users know that they have gained new followers.

  1. The function triggers on writes to the Realtime Database path where followers are stored.
  2. The function composes a message to send via FCM.
  3. FCM sends the notification message to the user's device.

To review working code, see Send FCM notifications.