【问题标题】:Error Messaging Payload错误消息负载
【发布时间】:2018-06-07 08:04:50
【问题描述】:

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);
            });
    });

有人帮帮我吗?我的错误是什么?

【问题讨论】:

    标签: javascript firebase firebase-realtime-database


    【解决方案1】:

    应该是这样的

     var payload = {
              data: {
                name: eventSnapshot.name,
              }
    

    我对此不确定,但我认为您不能将对象作为有效负载中的值传递。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-08-23
      • 1970-01-01
      • 2017-08-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-23
      相关资源
      最近更新 更多