我只是尝试了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
并为所有现有实体运行该函数?
每当我再次更改和部署函数时,这个操作是否会重复?
我期待它只为新添加的节点运行一次。
查看下面的答案 –