我想在本地测试一些firebase数据库和auth触发器,并找到了此文档 www.example.com 网站上。
沿着我输入的指示
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 functions:shell中正确调用我的自定义函数。
有人能给我指个路吗?
1条答案
按热度按时间ipakzgxi1#
根据文档,在调用Auth函数时,您必须传递
UserRecord
(参见doc),请参见您在问题中指向的文档底部(即:e. https://firebase.google.com/docs/functions/local-emulator#invoke_realtime_database_functions)做以下工作:
您确实在数据库中找到了新记录,电子邮件是小写的。
实际上,由于文档中说:“只指定代码所依赖的字段,如果只想运行函数,则不指定任何字段。“,我已经尝试了下面的
UserRecord
对象,它也可以工作。