Увеличьте счет в реальном времени для нового пользователя с помощью Firebase Cloud Function - PullRequest
0 голосов
/ 07 марта 2019

* ОБНОВЛЕНО: ЭТО РАБОТАЕТ.СМОТРЕТЬ ОТВЕТ НИЖЕ *

Я пытаюсь написать облачную функцию 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;
});

1 Ответ

0 голосов
/ 07 марта 2019

Оказывается, код выше работает! Я переключился с закомментированного кода (который не работает). Я полагаю, что это не заставило себя долго ждать, пока оно будет опубликовано, потому что теперь я вижу, как оно работает!

Извините за путаницу.

...