当前位置: 首页 > 知识库问答 >
问题:

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

东方震博
2023-03-14

我实际上在做一个聊天应用程序,消息存储在Firestore中,我希望消息的接收者在发送者发送消息时得到通知。我知道实现这一点的唯一方法是通过Firebase云消息传递,但我不知道如何实现这一点。

我该怎么做?

NB:我是新手。提前谢了。

共有1个答案

汲时铭
2023-03-14

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

看看firebase_messaging插件。

我想最简单的方法是让你的聊天应用程序独立于FCM工作(你可能已经在做了),这意味着消息保存在firestore中,你不使用FCM来传输消息。

然后,您可以在云函数中设置Firestore触发器,以自动向客户端发送通知。您将设置一个消息监听器,当它们被添加到firestore时,云函数将发布通知。

在应用程序中,只有当应用程序不在前台时,您才会显示通知。处理onResumeonLaunction以将应用程序指向正确的对话。

在处理Firestore触发器的cloud函数中,可以通过客户机的令牌ID来检测客户机,或者您可以让客户机订阅某些主题(例如聊天室ID),触发器/函数将向客户机发送通知。

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

使用主题更容易,客户端应用程序只需使用subscribeTotopic方法来监听关于给定主题的通知(在本例中是聊天室)。因此,当云功能检测到一条消息时,只需向其主题发布一个通知,所有订阅者都会收到通知。

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

 类似资料:
  • 在我的Android应用程序中,我收到使用Firebase发送的消息,问题不是所有消息都到达,有时消息到达非常慢。 在我的服务器端,我跟踪我发送到FCM的消息,我总是收到成功:来自FCM的1个响应,仍然有我在Android应用程序中没有收到的消息。 我认为FCM消息日志在上面描述的情况下会有很大的帮助,但我不确定是否存在此选项。 有办法浏览Firebase消息日志吗?

  • FCM服务未向我的iOS应用程序发送消息。 > App CAN成功接收APNs令牌和实例ID令牌 App CAN使用推送通知实用程序利用. p8令牌在后台成功接收来自APN的推送 #2中使用的相同APNs密钥上传到Firebase控制台 应用程序无法接收Firebase控制台中Notification Composer发送的消息,也无法使用CURL请求接收消息。 应用程序在通过FCM发送时不显示任

  • 我正试图将FCM与SNS整合。我在这个答案中读到设置应该与GCM相同。我设法创建了一个FCM应用程序,可以向android设备发送消息。当应用程序在后台时,设备在托盘中接收通知,或当应用程序在前台时打印接收的消息。我正试图整合它现在到SNS,但我似乎不能使它工作,没有任何错误信息。

  • 我正在尝试从OneSignal移动到Firebase云消息。我遇到的问题是,我无法在有效负载中定义键值对来本地化通知。我必须在我的应用程序中的字符串文件中定义一个键值对。这意味着,如果我想发送一个字符串文件中未定义的完全不同的通知,则该透视图中的通知不能是动态的。 当使用OneSignal时,我可以像这样定义用于本地化的有效负载: 这对云消息传递也是可能的吗?

  • 我通过一个‘管理应用程序’发送数据到FCM服务器,并希望其他‘非管理应用程序’能够接收推送通知,每当‘管理应用程序’发送数据到FCM服务器。 类似{“click_action”:“com.example.application.androidapp.main_activity”}或{“click_action”:“main_activity”}就可以了?

  • 我不确定如何在上使用和接收数据消息。 为了让您快速了解我的立场,我可以在我的设备上接收。所以我已经正确地配置了所有的东西(或者我相信是这样)。 所以,当应用程序在后台时,我会在通知托盘中得到一个通知。 当应用程序处于前台时,我也会在onMessage回调中接收消息。 但是,当我试图通过请求来模拟数据消息https://fcm.googleapis.com/fcm/send并发送正文时: 我的onm