gpt4 book ai didi

javascript - 在本地测试我的 firebase 身份验证触发器

转载 作者:行者123 更新时间:2023-12-02 19:20:21 25 4
gpt4 key购买 nike

我想在本地测试一些 Firebase 数据库和身份验证触发器,并找到了此文档 https://firebase.google.com/docs/functions/local-emulator#invoke_realtime_database_functions

按照我输入的说明进行操作

firebase functions:shell

然后调用我的自定义 Firebase 触发器

createNewUser({user: {email: 'some@email.com'}},{auth: {uid: '123'}})

但是,这给了我错误

firebase > createNewUser({user: {email: 'some@email.com'}},{auth: {uid: '123'}})
'Successfully invoked function.'
firebase > info: User function triggered, starting execution
info: Function crashed
TypeError: Cannot read property 'toLowerCase' of null

这是我尝试运行的函数:

const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);

exports.createNewUser = functions.auth.user().onCreate((user) => {
let lowerCaseEmail = user.email.toLowerCase();
return admin.database().ref(`/users/${user.uid}/lowerCaseEmail`).set(lowerCaseEmail);
});

我相信我没有在 firebase 函数中正确调用我的自定义函数:shell。

有人愿意为我指明正确的方向吗?

最佳答案

根据文档,在调用 Auth 函数时,您必须传递 UserRecord (请参阅 doc ),请参阅您在问题中指向的文档底部(即 https://firebase.google.com/docs/functions/local-emulator#invoke_realtime_database_functions ) )

做好以下工作:

createNewUser({ disabled: false, 
displayName: 'Renaud',
email: 'Mail@Gmail.com',
emailVerified: false,
metadata: {creationTime: null, lastSignInTime: null},
photoURL: null,
providerData: ['google.com'],
uid: '123' })

您确实在数据库中找到了新记录,其中电子邮件地址为小写。

<小时/>

实际上,由于文档说:“仅指定您的代码所依赖的字段,或者如果您只想运行该函数,则根本不指定字段。”,我尝试使用以下 UserRecord 对象,并且它也有效

createNewUser({email: 'Mail@Gmail.com', uid: '123'})

关于javascript - 在本地测试我的 firebase 身份验证触发器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50291436/

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