【问题标题】: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()
}