【问题标题】:How do you tell if a user is "anonymous" in the onCreate firebase cloud function?您如何判断用户在 onCreate firebase 云功能中是否“匿名”?
【发布时间】:2023-03-26 21:17:01
【问题描述】:

在我的 onCreate auth 云函数中,我如何判断用户是否是匿名用户,例如我在onAuthStateChangedonIdTokenChanged 响应中获得的isAnonymous 属性?

exports.createHandler = functions.auth.user().onCreate((user, context) => {
  let uid = user.uid,
      isAnonymous = ????;
});

【问题讨论】:

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


    【解决方案1】:

    我在模拟器中测试过,发现匿名用户没有 providerData 信息。

    functino 中的密码用户 onCreate 触发器返回

    providerData: [
      {
        providerId: 'password',
        email: '********************',
        federatedId: '************',
        rawId: '***************',
        toJSON: [Function]
      }
    ]
    

    匿名用户返回

     providerData: [],
    

    【讨论】:

      【解决方案2】:

      我知道我迟到了,但也许这可以帮助某人。

      对我来说,从身份验证令牌获取提供者信息工作正常:

      context.auth.token.firebase.sign_in_provider

      【讨论】:

        【解决方案3】:

        您似乎无法从 Admin SDK 获取此信息。 SDK中没有方法可以获取。

        原因是“isAnonymous 只是客户端构造”,如下所述:https://github.com/firebase/firebase-admin-node/issues/127

        isAnonymous 只是一个客户端构造。如果一个用户是用 signInAnonymously(),此标志设置为 true(仅限客户端)。为了 例如,您可以使用 createUser 并只创建一个用户而无需任何 个人资料信息(没有电子邮件、电话、密码等)。那会是 被认为是匿名的?如果您创建一个用户 电子邮件?自定义身份验证用户呢?您也可以取消所有链接 来自非匿名帐户的提供者。那个用户会变成 匿名?

        基本上,您需要应用自己的匿名标准 用户构成。当您列出用户时,您也许可以检查没有 提供商已链接,并且没有为用户设置电子邮件/电话号码等。

        【讨论】:

        猜你喜欢
        • 2020-03-02
        • 1970-01-01
        • 1970-01-01
        • 2018-11-17
        • 1970-01-01
        • 1970-01-01
        • 2011-09-02
        • 2021-08-19
        • 2020-06-27
        相关资源
        最近更新 更多