我尝试创建一个程序,从节点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继续检查该路径的值。我只想释放那个东西。那我怎么做呢?
答案 0 :(得分:1)
ref.on("value")
将在该值发生变化时触发,例如删除数据时。而是使用
ref.once("value", function(snapshot)
然后admin.messaging().sendToDevice(registrationToken, payload)
再次被触发。