【问题标题】:test my firebase auth triggers locally在本地测试我的 Firebase 身份验证触发器
【发布时间】: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


【解决方案1】:

根据文档,您在调用 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'})

【讨论】:

    猜你喜欢
    • 2020-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-27
    • 2015-11-04
    • 2021-04-28
    • 2016-11-27
    相关资源
    最近更新 更多