Nodejs对数据库的Firebase引用继续检查值

时间:2017-09-29 14:14:11

标签: node.js firebase firebase-realtime-database

我尝试创建一个程序,从节点js服务器从firebase数据库中获取数据。

function FCM()
{
    var payload = {
      data: {
           //Some data
      }
    };

    var db = admin.database();
    var ref = db.ref("PATH_TO_DATABASE");

    ref.on("value", function(snapshot) {
      registrationToken = REGISTRATION TOKEN

    admin.messaging().sendToDevice(registrationToken, payload)
      .then(function(response) {
        console.log("Successfully sent message:", response);
      })
      .catch(function(error) {
        console.log("Error sending message:", error);
      });


    }, function (errorObject) {
      console.log("The read failed: " + errorObject.code);
    });
}

但是当这个函数完成后,服务器会像往常一样继续运行,这很好,但问题是当任何数据从PATH_TO_DATABASE中删除时会出错:

TypeError: Cannot convert undefined or null to object

现在我不希望firebase继续检查该路径的值。我只想释放那个东西。那我怎么做呢?

1 个答案:

答案 0 :(得分:1)

ref.on("value")将在该值发生变化时触发,例如删除数据时。而是使用

ref.once("value", function(snapshot)

然后admin.messaging().sendToDevice(registrationToken, payload)再次被触发。