如何验证Firebase身份验证(服务器端)中仍存在FirebaseAuth.instance.currentUser()
?
我在Firebase控制台中删除了该用户,但是FirebaseAuth.instance.currentUser
仍然返回了一个用户。
那么,如何检查(await FirebaseAuth.instance.currentUser()).uid
仍在Firebase控制台的“身份验证”列表中?
答案 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()
}