*更新:这项工作。请看下面的答案*
我正在尝试编写Firebase云功能,每当创建新用户时,该功能会增加实时数据库/userCount
值。
我尝试了以下内容,但在incrementCountOnNewUser
中得到“TypeError:userCountRef.transaction不是函数”。
当incrementCountOnOpen
的值设置为garage
时,事务正在为我的其他函数true
工作,但ref
是从after
事件对象派生的。
有关如何做到这一点的任何建议?
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp();
// const userCountRef = functions.database.ref("/userCount"); // does NOT work
const userCountRef = admin.database().ref('/userCount'); // THIS WORKS!
exports.incrementCountOnNewUser = functions.auth.user().onCreate((user) => {
return userCountRef.transaction(count => count + 1);
});
exports.incrementCountOnOpen = functions.database.ref("/garage").onUpdate(({after}) => {
const countRef = after.ref.parent.child('count');
const newValue = after.val();
return newValue
? countRef.transaction(count => count + 1)
: null;
});
事实证明上面的代码有效!我已经从注释掉的代码(不起作用)切换。我想它在我发表后没有等待足够长的时间传播,因为我看到它现在正在工作!
对困惑感到抱歉。