即使发送(消息)成功,通知也没有到达 iOS 设备

Posted

技术标签:

【中文标题】即使发送(消息)成功,通知也没有到达 iOS 设备【英文标题】:Notification not reaching iOS device even though send(message) is successful 【发布时间】:2018-12-15 05:31:35 【问题描述】:

我正在尝试构建一个 Firebase 云功能来发送通知。我可以使用 FCM 令牌使用控制台直接向 ios 设备发送通知,并且我的 iOS 设备会显示通知。但是,即使 FCM 令牌相同且 send(message) 调用成功,设备也没有使用下面的云功能接收通知。我错过了什么吗?

const admin = require('firebase-admin');
const functions = require('firebase-functions');

admin.initializeApp(functions.config().firebase);

var db = admin.firestore();

exports.requestCreated = functions.firestore
.document('users/userId')
.onWrite((change, context) => 
  const createdBy = context.params.userId;
  console.log("Request created by ",createdBy);
  var userRef = db.collection('users').doc(createdBy);
  return userRef.get().then(doc => 
  console.log('Data: ',doc.data());
  console.log('FCM token: ',doc.data().fcmToken);

      // This registration token comes from the client FCM SDKs.
      var registrationToken = doc.data().fcmToken;

      // See documentation on defining a message payload.
      var message = 
        data: 
          score: '850'
        ,
        token: registrationToken
      ;

      // Send a message to the device corresponding to the provided
      // registration token.
      admin.messaging().send(message)
        .then((response) => 
          // Response is a message ID string.
          console.log('Successfully sent message:', response);
        )
        .catch((error) => 
          console.log('Error sending message:', error);
        );
  );
);

【问题讨论】:

你实现了 didReceiveRemoteNotification 并且还实现了功能并在后台模式下启用远程通知 你试过sendToDevice()的方法吗? 您的问题解决了吗? sendToDevice 帮助 【参考方案1】:

//在消息负载中添加通知

var message = 
        data: 
          score: '850'
        ,
        notification: 
          title: "",
          body: ""
        
        token: registrationToken
      ;

您的代码通常在 android 中运行。在 IOS 中,您需要在消息负载中附加通知并使用 sendToDevice()。试试这个。您必须使用此有效负载获取分数。会工作的

【讨论】:

谢谢。这有帮助。不幸的是,当应用程序处于前台时,我仍在努力在设备上显示通知。

以上是关于即使发送(消息)成功,通知也没有到达 iOS 设备的主要内容,如果未能解决你的问题,请参考以下文章

iOS推送通知我做错了啥? [关闭]

iOS:使用 JavaPNS 从服务器发送的通知未到达

向 Parse 发送推送通知,如何在设备中接收它

GCM 通知仅到达某些设备

没有设备令牌的 ios 推送通知/消息

传递到 Azure 通知中心的通知消息未到达设备 (Android)