Flutter:如何将Firebase云消息传递与ChatApp集成

时间:2018-10-29 12:15:58

标签: firebase flutter cloud google-cloud-firestore messaging

我实际上是在聊天应用程序上,消息存储在Firestore中,我希望消息的接收者在发件人发送消息时得到通知。我知道通过Firebase Cloud Messaging实现此目标的唯一方法,但我不知道该怎么做。

我该怎么办?

注意:我是Flutter的新手。预先感谢。

1 个答案:

答案 0 :(得分:2)

FCM是一种方法,但这不是唯一的方法-尽管如此,我认为这是一种好方法! :)

看看firebase_messaging插件。

我想最简单的方法是使聊天应用程序独立于FCM运行(就像您可能已经在做的那样),这意味着消息存储在Firestore中,并且您不使用FCM来传输消息。

然后,您可以在Cloud Function中设置一个Firestore触发器,以自动将通知发送给客户端。您将设置一个消息侦听器,并在将消息添加到Firestore中时,云功能将发布通知。

在应用程序中,仅当应用程序不在前台时才显示通知。处理onResumeonLaunch,将应用指向正确的对话。

在处理Firestore触发器的云功能中,可以通过其令牌ID检测到客户端,或者您可以让客户端订阅某些主题(例如,聊天室ID),并且触发器/功能可以将通知发布给他们。

使用令牌要困难得多,因为您将必须在所有客户端中检测令牌ID,将其作为用户的一部分保存在firestore中,并随着时间的变化而不断更新。然后,要发送,您将必须向每个tokenID发布单独的通知。

使用主题更容易,客户端应用程序只需使用subscribeToTopic方法就给定主题(在本例中为聊天室)收听通知。因此,当云功能检测到一条消息时,您只需在该主题上发布一条通知,所有订阅者都会收到通知。

很抱歉,如果这是一个非常肤浅的解释,但确实不是一个非常简单的主题。 :)