【问题标题】:Firebase cloud function 1.0, no auth information for current userFirebase 云功能 1.0,当前用户没有身份验证信息
【发布时间】:2018-04-05 09:48:15
【问题描述】:

我刚刚升级到 Firebase 云功能 1.0,由于没有 event 参数,因此没有用于提供当前用户信息的 event.auth.variable.uid(尽管它没有记录)。

Firebase 1.0 有新的上下文参数,类似于

{ service: 'firebaseio.com',
 name: 'projects/_/<ref>/pushId5' },
 authType: 'ADMIN',
 params: { pushId: 'pushId5' } }

如何在新的 firebase 函数 sdk 中获取当前用户信息?

【问题讨论】:

标签: javascript node.js firebase firebase-authentication google-cloud-functions


【解决方案1】:

根据文档:

EventContext.auth V1.0.0 引入了两个新属性,用于访问触发函数的用户的用户信息,包括权限。

EventContext.auth 包含uid 和经过身份验证的用户的身份验证令牌等信息。

EventContext.authType 包含权限级别,例如允许您检测用户是否为管理员用户。

使用未记录的 event.auth 字段的开发人员应更新任何相关代码以使用这些新属性。

因此,要获取有关用户的信息,请执行以下操作:

exports.dbWrite = functions.database.ref('/path/with/{id}').onWrite((data, context) => {
const authVar = context.auth.uid;
const authType = context.authType.ADMIN;

});

更多信息在这里:

https://firebase.google.com/docs/functions/beta-v1-diff#sdk_changes_by_trigger_type

https://firebase.google.com/docs/reference/functions/functions.EventContext#.authType

【讨论】:

    【解决方案2】:

    我的错,在functions:shell 中测试函数时,我没有传递任何auth 参数。我实际上需要像这样通过它

    myFunc(newObject, {auth: {uid: 'abcd'}})
    

    然后可以使用 context.auth.uid 检索此身份验证 ID

    【讨论】:

    • 我刚刚试过了,context.auth.uid 中仍然没有 uid。 API 是否发生了变化?
    猜你喜欢
    • 2020-12-04
    • 2018-07-19
    • 2021-08-19
    • 1970-01-01
    • 2019-05-23
    • 2020-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多