当新孩子添加到数据库中时,Firebase推送通知



我想每次在firebase数据库中创建的新孩子时都会发出通知。这就是我到目前为止得到的。使用这条代码,您可以在创建新孩子时恢复通知。但是问题在于,通知总是带有标题:"标题",正文:"来检查"是。现在是我的问题,我如何可以用价值城市和时间创建通知(请参见下面的结构)

const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);
exports.sendPushNotification = functions.database.ref('/Rollerbanken/{Id}').onCreate(event => {
    const payload = {
    notification: {
    title: 'Title',
    body: 'come check it',
    badge: '0',
    sound: 'default',
    }
};
    return admin.database().ref('fcmToken').once('value').then(allToken => {
    if(allToken.val()) {
    const token = Object.keys(allToken.val());
    return admin.messaging().sendToDevice(token, payload).then(response => {
            });
        };
    });
});

我的结构:

{
  "Rollerbanken" : {
    "-KuKDXL2pY9MMtw551ZI" : {
      "Extrainformatie" : "",
      "Latitude" : "51.9145932124898",
      "Longitude" : "5.86974696138047",
      "Staater" : "Staat er",
      "Staaternietmeer" : "",
      "City" : "Overbetuwe",
      "Time" : "15 : 43",
      "TijdControle" : "15 : 43",
      "TijdControleniet" : "",
      "TypeControle" : "Rollerbank"
    }
  }

希望您能帮助我!

基本上,您需要为要发送的每个通知修改有效负载对象。好消息是因为它只是一个可以轻松访问的对象,因此您要做的就是payload.name = YOURDESIREDVALUEHERE

因此,您需要做的就是拿起新钥匙,(令牌)并使用它来访问对象。除非我错误的对象。Keys会生成一个数组,因此您的访问密钥应为令牌[0],然后使用它来访问您的值,例如此allToken.val()[token[0]]["City"]

您的代码看起来像这样:

const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);
exports.sendPushNotification = functions.database.ref('/Rollerbanken/{Id}').onCreate(event => {
    const payload = {
    notification: {
    title: 'Title',
    body: 'come check it',
    badge: '0',
    sound: 'default',
    }
};
    return admin.database().ref('fcmToken').once('value').then(allToken => {
    if(allToken.val()) {
    const token = Object.keys(allToken.val());
    payload.notification.title = allToken.val()[token[0]]["City"] + allToken.val()[token[0]]["Time"] //change here
    return admin.messaging().sendToDevice(token, payload).then(response => {
            });
        };
    });
});

相关内容

  • 没有找到相关文章

最新更新