Javascript 在创建和更新数据库时获取用户的用户ID

Javascript 在创建和更新数据库时获取用户的用户ID,javascript,firebase,firebase-authentication,google-cloud-functions,Javascript,Firebase,Firebase Authentication,Google Cloud Functions,我正在尝试编写一个云函数,该函数检测何时使用oncreate((user)函数创建了新用户,然后将值50添加到points字段。 这就是创建的内容: 我想做的是检测用户何时被创建,获取ID并将points值更改为50,它必须是一个云函数。 这就是我的代码目前的样子 exports.updatepoints = functions.auth.user().onCreate((user) => { const userID = firebase.auth.currentUser

我正在尝试编写一个云函数,该函数检测何时使用oncreate((user)函数创建了新用户,然后将值50添加到points字段。 这就是创建的内容:

我想做的是检测用户何时被创建,获取ID并将points值更改为50,它必须是一个云函数。 这就是我的代码目前的样子

    exports.updatepoints = functions.auth.user().onCreate((user) => {

  const userID = firebase.auth.currentUser.uid; 
  return updatepoints(userID)
});

async function updatepoints(userID) {
  return firebase.database().ref('mobile_user/' + userID).set(
    {
      points: 50
    });
};

我是JS和firebase的新手,因此非常感谢您的指导。

我会这样做:

首先,我将更改函数的名称,以真正说明函数正在做什么,在本例中,初始化一个user.So initUser

然后您的函数以用户的形式接收数据。使用该数据获取所创建用户的信息并将数据保存到Firebase

这样的办法应该行得通

import { auth } from 'firebase-functions';
import { database } from 'firebase-admin';

exports.initUser = functions.auth.user().onCreate((user) => {

const mobileUser = {
email: user.email,
points: 50,
subscribedToMailingList: true
}    

const ref = database().ref(`mobile_user/${user.uid}`);

  return ref.set(mobileUser)
    .then(() => console.log(`Created user: ${user.email}`))
    .catch((error) => console.log(`Error: ${error}`));

这里的标识符是什么?如果您试图在云函数中使用javascript客户端库,那么这不是正确的方法。您需要使用admin SDK。此外,您可能需要从auth触发器的文档开始,因为您需要了解该
用户
参数是什么。仅供参考你的
async
是多余的。如果用户使用Admin/Node SDK创建客户端(JavaScript/Web SDK)或服务器端,你应该返回
set()
返回的承诺,比如
return ref.set(mobileUser)…
。有关详细信息,请参阅官方视频系列,特别是“学习JavaScript承诺(第2部分)”在云函数中使用Firestore触发器”