成功sendToDevice后,Firebase云消息传递不起作用
我使用Firebase云端function通过云端消息向iOS设备发送通知。 sendToDevice
方法工作良好,并返回成功承诺,在Firebase函数日志中没有任何错误或警告,但在iOS上,不显示通知。 如果我通过Firebase通知信息中心发送通知,该通知很有用,并且会在设备上显示通知。 我不知道我在哪里可以有bug。 有可能是iOS应用程序端的错误,即使它像我说的那样工作?
Firebaseconfiguration:
var functions = require('firebase-functions'); var admin = require('firebase-admin'); var config = functions.config(); admin.initializeApp(functions.config().firebase);
部分云function:
APP.services.firebase.admin.database().ref('tokens/' + userId).once('value', function(snapshot) { var userDevicesTokens = []; snapshot.forEach(function(childSnapshot) { userDevicesTokens.push(childSnapshot.key) }); if (userDevicesTokens.length === 0) { console.warn('No tokens for user'); return; } var payload = { data: { title: options.title, text: options.text, type: options.type, } }; APP.services.firebase.admin.messaging().sendToDevice(userDevicesTokens, payload) .then(function(response) { console.log("Successfully sent message:", response); }) .catch(function(error) { console.log("Error sending message:", error); }); })
Firebase云端函数日志:
11: 52: 43.952 AM info newChatMessageTrigger Successfully sent message: { results: [{ messageId: '0:15016....' }], canonicalRegistrationTokenCount: 0, failureCount: 0, successCount: 1, multicastId: 589.... } 11: 52: 22.760 AM outlined_flag newChatMessageTrigger Function execution took 604 ms, finished with status: 'ok' 11: 52: 22.252 AM outlined_flag newChatMessageTrigger Billing account not configured.External network is not accessible and quotas are severely limited.Configure billing account to remove these restrictions 11: 52: 22.252 AM outlined_flag newChatMessageTrigger Function execution started
我认为这是你的有效载荷的问题。
尝试使用您的Firebasefunction一次这个有效载荷,并让我知道你是否收到iOS的通知。
var payload = { data: { title: "Welcome to ChitChat Group", message: "You may have new messages" } };
我写信给Firebase支持,问题是消息types。 在Firebase中,我们有两种types的消息:数据和通知。 在这种情况下,我们应该使用types通知( 参见文档 )。
有效载荷应该如下所示:
var payload = { notification: { title: options.title, body: options.text, }, data: { type: options.type, } };
- 如何使用Node.js在Firebase中注册用户?
- 带有Gmail“发件人:地址”的Nodemailer不会更改
- Firebase云端函数数据库触发器“onCreate不是函数”
- 用于Firebase Admin SDK的Node.js身份validation服务器 – JWTvalidation问题
- 本地Firebase服务器节点会引发“Firebase.goOffline不是function”
- 使用Firebase进行NodeJS身份validation
- 使用firebase托pipenodeJS应用程序
- 云function“event =>”文档
- 如何将一个childNode从一个节点复制到另一个节点?