首页 > 解决方案 > 使用 Firebase Cloud Function 增加新用户的实时数据库计数

问题描述

*更新:这有效。请参阅下面的答案 *

我正在尝试编写一个 Firebase 云函数,该函数/userCount在创建新用户时递增实时数据库值。

我尝试了以下方法,但在incrementCountOnNewUser.

当 的值设置为时,事务正在为我的其他函数工作,但是从事件对象派生的。incrementCountOnOpengaragetruerefafter

关于如何做到这一点的任何建议?

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;
});

标签: javascriptfirebase-realtime-databasegoogle-cloud-functionsfirebase-admin

解决方案


事实证明,上面的代码有效!我已经从注释掉的代码(不起作用)切换。我想它在我发布后没有等待足够长的时间来传播,因为我看到它现在正在工作!

对困惑感到抱歉。


推荐阅读