【发布时间】:2017-05-18 12:11:49
【问题描述】:
您如何知道数据是否未发生变化以及 Firebase Cloud 功能中有哪些新功能?我尝试了几种不同的选项来标记如果数据刚刚更改,那么我不会发送推送通知。我也尝试从快照 _newData 和 _data 子节点的个数进行比较,如果 __newData 更大,那么这是一条新记录,但是没有用。请告诉我如何做到这一点。
示例代码的 sn-p。
module.exports = functions.database.ref('/userListEvents/{userID}')
.onWrite(event => {
const snapshot = event.data;
if (event.data.val() && !event.data.previous.val()) {
console.log('send push notification');
} else if (snapshot._data) {
console.log('send push notification');
} else {
return console.log('data was removed');
};
}
参考
functions.database.ref('/cards/{cardID}/interestedUsers')
.onWrite(event => {
更新:此选项对我不起作用,因为如果我这样做例如functions.database.ref ('/ userListEvents / {userID} / {eventID}'),则会报告该字段不能为空的错误。
我试过了,但没有得到好的结果。
if (event.data.val() && !event.data.previous.val()) {
console.log('send push notification');
} else if (event.data.val() && event.data.previous.val()) {
const newData = event.data.val();
const previousData = event.data.previous.val();
console.log('newData', newData, 'previousData', previousData);
const newDataKeys = Object.keys(newData);
const previousDataKeys = Object.keys(previousData);
if (newDataKeys.length > previousDataKeys.length) {
console.log('send push', newDataKeys.length, previousDataKeys.length);
} else {
return console.log('just update data', newDataKeys.length, previousDataKeys.length);
}
} else {
return console.log('removed data')
}
【问题讨论】:
标签: node.js firebase google-cloud-functions