gpt4 book ai didi

javascript - 写入实时数据库的 Firebase 用户身份验证触发器

转载 作者:行者123 更新时间:2023-12-03 00:44:51 27 4
gpt4 key购买 nike

exports.setupDefaultPullups = functions.auth.user()
.onCreate(
async (user) => {
const dbRef= functions.database.ref;
let vl= await (dbRef.once('value').then( (snapshot) => {
return snapshot.ref.child('userInfo/'+user.uid).set(18);
}));
return vl;
}
);

我正在尝试在 Firebase 中为新用户编写一些初始设置的触发器。然而,上面的代码不起作用。这有什么问题吗?基本上,在注册新用户时,我想使用上述路径将他/她的属性“defaultPullUps”设置为 18。

编辑:很抱歉没有提供详细信息。最初,“async”关键字存在问题,已通过更新 node.js 引擎修复。现在,我收到各种错误消息,具体取决于我如何调整代码。有时它会说“...不是一个函数”。

编辑':虽然我同意我的问题没有达到标准,但它有一个值(value):在Firebase身份验证触发器的在线文档中,没有显示如何访问“主”数据库 https://firebase.google.com/docs/functions/auth-events

编辑'':这是完整的消息:

TypeError: Cannot read property 'child' of undefined
at exports.setupDefaultPullups.functions.auth.user.onCreate.user (/srv/index.js:15:36)
at cloudFunctionNewSignature (/srv/node_modules/firebase-functions/lib/cloud-functions.js:105:23)
at /worker/worker.js:756:24
at <anonymous>
at process._tickDomainCallback (internal/process/next_tick.js:228:7)

最佳答案

这一行没有意义:

const dbRef= functions.database.ref;

如果您想在从其他来源(例如您的案例中的 Firebase 身份验证)触发的云功能中使用 Firebase 实时数据库,则可以使用 Firebase Admin SDK 来实现。

有关此示例,请参阅 Initialize Firebase SDK for Cloud Functions Get started with Cloud Functions 部分文档。具体来说,您需要使用以下方法导入和初始化:

// The Cloud Functions for Firebase SDK to create Cloud Functions and setup triggers.
const functions = require('firebase-functions');

// The Firebase Admin SDK to access the Firebase Realtime Database.
const admin = require('firebase-admin');
admin.initializeApp();

然后可以使用以下方法从您的函数访问数据库:

const dbRef= admin.database().ref();

关于javascript - 写入实时数据库的 Firebase 用户身份验证触发器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53293371/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com