【发布时间】:2019-03-07 15:08:33
【问题描述】:
* 更新:这有效。请参阅下面的答案 *
我正在尝试编写一个 Firebase 云函数,该函数会在创建新用户时递增实时数据库 /userCount 值。
我尝试了以下方法,但在 incrementCountOnNewUser 中收到“TypeError: userCountRef.transaction is not a function”。
当garage 的值设置为true,但ref 派生自after 事件对象时,我的其他函数incrementCountOnOpen 的事务正在工作。
关于如何做到这一点的任何建议?
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;
});
【问题讨论】:
-
我在使用 Cloud Firestore(不是 RD)的代码中遇到了类似的问题。 github.com/firebase/functions-samples 的示例非常古老。你的帖子很有帮助。
标签: javascript firebase-realtime-database google-cloud-functions firebase-admin