我尝试在Firebase
数据库中更新数据时通过Firebase
函数发送通知。我猜这是我在有效载荷中引用我的变量的方式,但我无法识别错误。下面是logcat。
Error sending message: { Error: Messaging payload contains an invalid
value for the "data.name" property. Values must be strings.
at FirebaseMessagingError.Error (native)
at FirebaseMessagingError.FirebaseError [as constructor] (/user_code/node_modules/firebase-admin/lib/utils/error.js:39:28)
at FirebaseMessagingError.PrefixedFirebaseError [as constructor] (/user_code/node_modules/firebase-admin/lib/utils/error.js:85:28)
at new FirebaseMessagingError (/user_code/node_modules/firebase-admin/lib/utils/error.js:241:16)
at /user_code/node_modules/firebase-admin/lib/messaging/messaging.js:782:27
at Array.forEach (native)
at /user_code/node_modules/firebase-admin/lib/messaging/messaging.js:779:32
at Array.forEach (native)
at Messaging.validateMessagingPayload (/user_code/node_modules/firebase-admin/lib/messaging/messaging.js:772:21)
at /user_code/node_modules/firebase-admin/lib/messaging/messaging.js:609:37
errorInfo:
{ code: 'messaging/invalid-payload',
message: 'Messaging payload contains an invalid value for the "data.name" property. Values must be strings.' },
codePrefix: 'messaging' }
以下是我的JS代码:
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp();
exports.sendNotification = functions.database.ref('/Lecture_Materials/{MIS}/{MISId}/name')
.onWrite((change, context) => {
// Grab the current value of what was written to the Realtime Database.
var eventSnapshot = change.after.val();
var str1 = "Lecture note uploaded is: ";
var str = str1.concat(eventSnapshot.name);
console.log(str);
var topic = "Management.Information.System";
var payload = {
data: {
name: eventSnapshot,
}
};
// Send a message to devices subscribed to the provided topic.
return admin.messaging().sendToTopic(topic, payload)
.then(function(response) {
// See the MessagingTopicResponse reference documentation for the
// contents of response.
console.log("Successfully sent message:", response);
return;
})
.catch(function(error) {
console.log("Error sending message:", error);
});
});
有人帮帮我吗?我的错误是什么?
答案 0 :(得分:0)
它应该是这样的
var payload = {
data: {
name: eventSnapshot.name,
}
我不确定这一点,但我认为你不能将对象作为有效载荷中的值传递。