【问题标题】:How do I verify that current FirebaseUser exists?如何验证当前 FirebaseUser 是否存在?
【发布时间】:2019-06-30 19:15:57
【问题描述】:

如何验证 FirebaseAuth.instance.currentUser() 是否仍然存在于 Firebase 身份验证(服务器端)中?

我在 Firebase 控制台中删除了用户,但 FirebaseAuth.instance.currentUser 仍然返回用户。

那么,如何检查 (await FirebaseAuth.instance.currentUser()).uid 是否仍在 Firebase 控制台的身份验证列表中?

【问题讨论】:

    标签: firebase flutter firebase-authentication


    【解决方案1】:

    您可以使用reload method of FirebaseUser

    final FirebaseUser firebaseUser = await FirebaseAuth.instance.currentUser();
    await firebaseUser.reload();
    
    // This should print `true` if the user is deleted in the Firebase Console.
    print(await FirebaseAuth.instance.currentUser() == null);
    

    如果您的用户在 Firebase 控制台中被删除(或禁用),并且您在 Flutter 中对该用户调用 reload,则下次您调用 currentUser 时,它应该返回 null,即没有用户对此进行身份验证设备。

    【讨论】:

      【解决方案2】:

      使用角度,

      isLoggedIn() {
         return this.afAuth.authState.pipe(first())
      }
      
      doSomething() {
        isLoggedIn().pipe(
          tap(user => {
            if (user) {
              // do something
            } else {
              // do something else
            }
          })
        )
        .subscribe()
      }
      

      【讨论】:

        猜你喜欢
        • 2021-03-14
        • 2012-08-14
        • 2017-09-05
        • 1970-01-01
        • 2019-11-19
        • 2015-11-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多