如何验证当前的FirebaseUser存在?

时间:2019-06-30 19:15:57

标签: firebase flutter firebase-authentication

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

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

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

2 个答案:

答案 0 :(得分:4)

您可以使用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,即没有用户在此设备上进行了身份验证。

答案 1 :(得分:0)

使用角度

isLoggedIn() {
   return this.afAuth.authState.pipe(first())
}

doSomething() {
  isLoggedIn().pipe(
    tap(user => {
      if (user) {
        // do something
      } else {
        // do something else
      }
    })
  )
  .subscribe()
}