[英]Program won't exit when call to Firebase Cloud Messaging sendToDevice
[英]Firebase cloud messaging does not work after successfully sendToDevice
我使用Firebase Cloud Functions通過Cloud Messaging將通知發送到iOS設備。 sendToDevice
方法的效果很好,可以在Firebase Functions日志中返回成功承諾,而不會出現任何錯誤或警告,但是在iOS上,不會顯示通知。 如果我從Firebase通知儀表板發送通知,則該通知會很好地工作並且通知會顯示在設備上。 我不知道在哪里可以找到錯誤。 即使我像我說的那樣工作,該錯誤也可能在iOS應用程序方面?
Firebase配置:
var functions = require('firebase-functions');
var admin = require('firebase-admin');
var config = functions.config();
admin.initializeApp(functions.config().firebase);
雲功能的一部分:
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
我寫信給Firebase支持,問題出在消息類型上。 在Firebase中,我們有兩種消息類型:數據和通知。 在這種情況下,我們應該使用類型通知( 請參閱文檔 )。
有效負載應如下所示:
var payload = {
notification: {
title: options.title,
body: options.text,
},
data: {
type: options.type,
}
};
我認為這與您的有效載荷有關。
使用您的firebase函數嘗試一次此有效負載,並讓我知道您是否在iOS上收到通知。
var payload = {
data: {
title: "Welcome to My Group",
message: "You have new messages"
}
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.