【问题标题】:react firebase auth displayName return null反应firebase auth displayName返回null
【发布时间】:2020-12-30 01:42:25
【问题描述】:

我正在尝试按照谷歌文档进行 Firebase 身份验证。用户注册后,他将重定向到“/”路径,然后我通过 onAuthStateChangedListener 获取用户显示名称,但它返回 null,尽管我正在检查完整的用户数据文件并包含 displayName 字段。

授权码

firebase
          .auth()
          .createUserWithEmailAndPassword(email, password)
          .then((result) => {
            result.user
              .updateProfile({
                displayName: nickname,
              })

获取用户数据代码

firebase.auth().onAuthStateChanged((data) => {
      if (data) setUser(data);
      console.log(data);
    });

屏幕包含显示名称

【问题讨论】:

  • 您确定您的变量“昵称”不为空或未定义吗?

标签: javascript reactjs firebase-authentication


【解决方案1】:

这是预期的行为:.createUserWithEmailAndPassword(email, password) 上的身份验证状态更改。一旦发生这种情况,对result.user.updateProfile(...) 的调用不会 更改身份验证状态,not 也会导致再次调用身份验证状态更改侦听器。

如果您想确保您拥有最新的身份验证配置文件,请在更新配置文件后通过调用 user.getIdToken(true)user.reload() 刷新 ID 令牌。但是这些都不会导致身份验证状态更改,因此它们也不会导致对您的身份验证状态更改处理程序的调用。

改为:在这些调用之后使用 firebase.auth().currentUser, and pass that to setUser()` 获取当前用户。

【讨论】:

    猜你喜欢
    • 2022-01-16
    • 2016-10-06
    • 2019-04-12
    • 2020-06-24
    • 1970-01-01
    • 1970-01-01
    • 2021-08-23
    • 1970-01-01
    • 2019-08-05
    相关资源
    最近更新 更多