【问题标题】:auth().currentUser.reload() returns undefinedauth().currentUser.reload() 返回未定义
【发布时间】:2026-02-12 22:05:01
【问题描述】:

我正在尝试在不注销用户的情况下检查 firebase emailVerified(Angular 6 网络应用程序),但 auth().currentUser.reload() 返回“未定义”

试过了:

import { auth } from 'firebase/app';

auth().currentUser.reload().then((u) => {
  console.log(u);
});

试过了:

import { AngularFireAuth } from '@angular/fire/auth';
this.afAuth.auth.currentUser.reload().then((u) => {
  console.log(u);
});

这些相关问题不要帮助

Update the email verification status without reloading page

Firebase: Observe email verification status in real time

Auth.auth().currentUser?.reload() doesn't refresh currentUser.isEmailVerified

【问题讨论】:

    标签: firebase firebase-authentication angularfire2


    【解决方案1】:

    firebase 核心不包含 auth 模块。您需要添加 auth 模块:

    import firebase from 'firebase/app';
    import 'firebase/auth';
    

    如果当前没有用户通过身份验证,currentUser 将为 null 并且没有 reload() 函数。试图调用它会给你和错误。

    reload() 函数返回一个承诺,因此您可以使用 .then,但该承诺不返回 currentUser 对象。重新加载后查看currentUser,只需参考currentUser...

    if (firebase.auth().currentUser) {
      firebase.auth().currentUser.reload().then(() => {
        console.log(JSON.stringify(firebase.auth().currentUser));
      });
    } else {
      console.log('No authenticated user');
    }
    

    【讨论】: