FirebaseMessaging.onMessage.listen() 仅适用于通知消息
Posted
技术标签:
【中文标题】FirebaseMessaging.onMessage.listen() 仅适用于通知消息【英文标题】:FirebaseMessaging.onMessage.listen() only working for Notification messages 【发布时间】:2021-08-21 20:39:40 【问题描述】:我目前正在开发一个 ios 应用程序,我想通过 Firebase 的云消息传递控制台发送推送通知,并通过 Java http 请求通过https://fcm.googleapis.com/fcm/send 发送通知。我创建了一个 onMessage 监听器,如下所示:
FirebaseMessaging.onMessage.listen((RemoteMessage message)
print("onMessage listener fired");
if (message != null)
PersonalFirebase.onMessageReceived(message, context, setState, flutterLocalNotificationsPlugin, notificationSettings.authorizationStatus);
);
如果我通过项目中的 Firebase 控制台发送消息,则会成功触发此侦听器,但是如果我尝试通过 HTTP 请求发送数据消息,即使我收到 200 响应代码,也不会发生任何事情。作为参考,这是我发送到 Java 中的 http 请求的有效负载:
JSONObject values = new JSONObject();
values.put("action", "show_message");
values.put("title", "showMessageFunction");
values.put("message", "Testing showMessage function");
values.put("channel", "1");
JSONObject parentData = new JSONObject();
parentData.put("data", values);
JSONObject message = new JSONObject();
message.put("to", to);
message.put("data", parentData);
基本上我的问题如下:FirebaseMessaging.onMessage 是否仅适用于通过 Firebase 控制台发送的通知。如果是这样,对于通过https://fcm.googleapis.com/fcm/send http 请求的数据消息,是否有 FirebaseMessaging.onMessage 的替代方案?
如果还有什么可以帮助我的,请告诉我。
【问题讨论】:
【参考方案1】:我们所要做的就是添加
message.put("content_available", true);
到消息 JSONObject 的末尾。
更多信息可以在here找到。
【讨论】:
以上是关于FirebaseMessaging.onMessage.listen() 仅适用于通知消息的主要内容,如果未能解决你的问题,请参考以下文章