我只是嘗試了Firebase的雲端函數,嘗試將我的firebase-queue
工作人員移至雲端函數。每當我在給定的ref處創建一個新節點時,我添加了一個簡單的函數來添加上次更新的時間戳。功能如下:多次調用Firebase的雲端函數
var functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);
exports.setLastUpdatedTimestamp = functions.database.ref('/nodes/{nodeId}')
.onWrite(event => {
const original = event.data.val();
console.log('Adding lastUpdatedTimestamp to node ', original.name);
return event.data.ref.child('lastUpdatedAtFromFC').set(Date.now());
});
我部署這個雲功能,並從我的應用程序添加的只是一個節點。我去了Firebase函數儀表板,看到這個函數被調用了169次,我不知道爲什麼。當我查看日誌時,我會看到像將函數附加到所有過去的節點一樣的日誌。
這是否是onWrite
的行爲類似於child_added
併爲所有現有實體運行該函數?
每當我再次更改和部署函數時,這個操作是否會重複?
我期待它只爲新添加的節點運行一次。
查看下面的答案 –