【问题标题】:FirebaseMessaging.onMessage.listen() only working for Notification messagesFirebaseMessaging.onMessage.listen() 仅适用于通知消息
【发布时间】: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 的替代方案?

如果还有什么可以帮助我的,请告诉我。

【问题讨论】:

    标签: ios firebase flutter firebase-cloud-messaging


    【解决方案1】:

    我们所要做的就是添加 message.put("content_available", true); 到消息 JSONObject 的末尾。 更多信息可以在here找到。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-02-20
      • 2011-12-09
      • 2017-03-18
      • 2020-04-12
      • 2023-04-03
      • 1970-01-01
      • 2016-01-27
      • 1970-01-01
      相关资源
      最近更新 更多