您如何知道數據是否未更改以及Firebase Cloud功能中的新增功能?我已經嘗試了幾種不同的選項來標記,如果數據剛剛更改,那麼我不會發送推送通知。另外我試圖從快照中獲得_newData 和_data子節點比較的數量,如果__newData更大,那麼這是一個新的記錄,但它不起作用。請告訴我怎麼做。如何瞭解Firebase雲端功能中的新數據?
示例代碼片段。
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')
}
請告訴我,你可以使用兩個動態鍵例如functions.database.ref('/ userListEvents/{userID}/{requestID}')? – Alexander
@Alexsander:是的,允許多個鍵。 –