使用Firebase主题的iOS推送通知消息不会将其发送到设备

我正尝试使用node.js将iOS推送通知发送到Firebase中的主题。 我按照这个教程 ,但不知道为什么通知没有使其订阅该设备的主题。 我能够从控制台发送主题消息,并且listenForNotificationRequests()正在成功移除notificationRequest子项。

以下是Firebase中通知请求的结构:

示例通知请求

下面是删除了键/ url的node.js代码:

 var firebase = require('firebase-admin'); var request = require('request'); var API_KEY = "APIKEYREMOVED"; // Your Firebase Cloud Messaging Server API key // Fetch the service account key JSON file contents var serviceAccount = require("./pathToJSON"); // Initialize the app with a service account, granting admin privileges firebase.initializeApp({ credential: firebase.credential.cert(serviceAccount), databaseURL: "URL_REMOVED" }); ref = firebase.database().ref(); function listenForNotificationRequests() { var requests = ref.child("notificationRequests"); requests.on("child_added", function(requestSnapshot) { var request = requestSnapshot.val(); sendNotificationToUser( request.username, request.message, function() { requestSnapshot.ref.remove(); } ); }, function(error) { console.error(error); }); }; function sendNotificationToUser(username, message, onSuccess) { request({ url: "https://fcm.googleapis.com/fcm/send", method: "POST", headers: { "Content-Type" : "application/json", "Authorization": "key="+API_KEY }, body: JSON.stringify({ to : "/topics/user_"+username, priority : "high", notification: { title: message } }) }, function(error, response, body) { if (error) { console.error(error); } else if (response.statusCode >= 400) { console.error('HTTP Error: '+response.statusCode+' - '+response.statusMessage); } else { onSuccess(); } }); } // start listening listenForNotificationRequests(); 

任何帮助/build议,非常感谢!

编辑:

下面是我如何订阅Swift中的主题:

 FIRMessaging.messaging().subscribe(toTopic: "user_\(currentUserID!)") 

对于遇到这个问题的人来说,我发现了这个问题。 我不得不将“文本”添加到通知有效内容中,这会填充通知的主体。 本教程只包含“标题”,这是可选的,并不足以自己…至less从我读过的APNS。

感谢那些回答!

 function sendNotificationToUser(username, message, onSuccess) { request({ url: "https://fcm.googleapis.com/fcm/send", method: "POST", headers: { "Content-Type" : "application/json", "Authorization": "key="+API_KEY }, body: JSON.stringify({ "priority" : "high", "notification" : { "title": sender, "text": message }, "to" : "/topics/user_"+username }) }, function(error, response, body) { if (error) { console.error(error); } else if (response.statusCode >= 400) { console.error('HTTP Error: '+response.statusCode+' - '+response.statusMessage); } else { onSuccess(); } }); }