* ОБНОВЛЕНО: ЭТО РАБОТАЕТ.СМОТРЕТЬ ОТВЕТ НИЖЕ *
Я пытаюсь написать облачную функцию Firebase, которая увеличивает значение базы данных реального времени /userCount
каждый раз, когда создается новый пользователь.
Я пробовалниже, но получаю «TypeError: userCountRef.transaction не является функцией» в incrementCountOnNewUser
.
Транзакции работают для моей другой функции 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;
});