【发布时间】:2021-09-06 06:09:19
【问题描述】:
我正在从事与基于反应本机应用的用户管理相关的任务。在他们成功注册为用户后,我包含一个存储布尔值的数据,并将其命名为 emailVerifiedAccount(如果他们成功注册,这是存储的数据,如果他们点击电子邮件,则表明他们是否是经过验证的用户验证链接发送给他们)。在登录屏幕中,我想检查我在 onAuthStateChanged 中从 firestore 获得的布尔值,并且仅在我获得的 emailVerifiedAccount 返回 true 时将它们引导到索引屏幕。下面的代码是登录屏幕的authstatechanged。
const onAuthStateChanged = (user) => {
if (user) {
checkEmailVerifiedAccount=firestoreService.isEmailVerifiedAccount(user);
try {
if(checkEmailVerifiedAccount===true){
navigation.navigate('Index');
}else{
Alert.alert(
"Verify as a Playbookx user",
"Please click on email verification link send to your email. If you do not receive any email ,please contact user support",
"You may come back to login again after you verified your email",
[
{ text: "OK"}
]
)
}
} catch (error) {
console.log(error);
}
}
};
在 firestore.js 中是与 Firestore 数据库相关的所有代码和函数。 isEmailVerifiedAccount 是使用电子邮件检查已验证用户的类对象之一。
isEmailVerifiedAccount = async (user) => {
return await firestore()
.collection('users')
.doc(user)
.get()
.then(snapshot => {
if (snapshot.exists){
const user=snapshot.data();
const emailVerifiedAccount={
emailVerifiedAccount:user.emailVerifiedAccount
};
return emailVerifiedAccount
}
})
.catch(error => {
console.log(error);
});
};
我现在面临的问题是,当 Firestore 中的 emailVerifiedAccount 为 false 时,它会引导我进入索引屏幕。下图是 Firestore 的结构。
【问题讨论】:
标签: javascript firebase react-native google-cloud-firestore