flutter 中的 Firebase 消息传递 sendMessage()

You*_*cef 5 push-notification dart flutter firebase-cloud-messaging

我是一名 flutter 程序员,在我的项目中使用 node.js 推送通知时使用 Firebase 云消息传递 我刚刚发现 flutter 的 firebase_Messaging 包中有一个名为 sendMessage 的方法,但我到处寻找文档并尝试了一切都想了解它是如何工作的,但一无所获。

这就是该软件包提供的所有信息:

1

因此,如果有人以前使用过它或可以帮助我理解它,我将非常感激<3

Fra*_*len 7

不幸的是,这种方法并不像您想象的那样:它不是通过 FCM 将消息从一个设备直接发送到另一台设备,而是一种目前不常用的替代协议(据我所知)。

FlutterFire 文档对该sendMessage方法的描述如下:

向 FCM 服务器发送新的 RemoteMessage。仅限安卓。

不幸的是,它缺少一些关键细节,因此我建议您还查看 Firebase 网站上的 Android 文档,其中包含发送上游消息,其开头为:

如果您的应用程序服务器实现 XMPP 连接服务器协议,它可以接收从用户设备到云的上游消息。

还是有点模糊,但继续阅读它还提到:

在应用服务器上接收 XMPP 消息

当 FCM 从客户端应用程序接收到上游消息传递调用时,它会生成发送上游消息所需的 XMPP 节。FCM 添加类别和来自字段,然后将如下所示的节发送到应用程序服务器

这里的关键是提到了应用程序服务器。正如许多地方所解释的那样:无法直接将消息从一个设备发送到另一台设备,因为这样做将允许任何用户向任何其他用户发送他们想要的任何消息,这是一个安全风险。

您找到的方法sendMessage允许您向 FCM 基础设施发送消息,然后 FCM 基础设施将其转发到您的应用程序服务器。如今,它已经不再被广泛使用,因为像 Cloud Functions 这样的工具提供了(至少相当,可能更好)可扩展性和更好的灵活性。