【发布时间】:2018-10-21 19:38:51
【问题描述】:
我想在本地测试一些 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。
有人愿意为我指明正确的方向吗?
【问题讨论】:
-
您可以将您的云函数代码添加到您的帖子中吗?
-
嗨@RenaudTarnec,我在问题中添加了我的云功能的代码。感谢您的宝贵时间!
-
据我所知,您正在嵌套
user。所以你需要: let lowerCaseEmail = user.user.email.toLowerCase() -
感谢您的洞察@FrankvanPuffelen!根据 Renauds 的回答,我认为我没有将正确的参数传递给我的触发函数.. :)
标签: firebase firebase-authentication google-cloud-functions