Firebase 验证用户';身份验证流中的当前状态
我正在努力创建身份验证流,但无法决定哪种方式更好 这就是我的流程:Firebase 验证用户';身份验证流中的当前状态,firebase,react-native,firebase-realtime-database,react-redux,Firebase,React Native,Firebase Realtime Database,React Redux,我正在努力创建身份验证流,但无法决定哪种方式更好 这就是我的流程: Splash Screen || \/ Sign Up with Email & Password (Using Firebase) || \/ Fill Name, Phone, and Upload Profile Image || \/ Waiting Page (Wait for Admin Approval) || \/ Home
Splash Screen
||
\/
Sign Up with Email & Password (Using Firebase)
||
\/
Fill Name, Phone, and Upload Profile Image
||
\/
Waiting Page (Wait for Admin Approval)
||
\/
Home Page
我试图实现的是:
如果用户注册但未填写“姓名/电话/图像”部分,则在重新安装或注销后再次登录时,他将自动重定向到“填写姓名/电话/图像”页面,
如果用户填写了信息,但未被管理员更改,请将其发送到等待页面
如果用户填写了和信息,并且已经过管理员验证,请将其发送到主页
现在我在两个选项之间摇摆不定:
或者,如果有更好的方法来实现这一点,我很乐意听到:)首选选项2 很好,您已经考虑过在redux persist中本地缓存状态,但问题是用户卸载和安装应用程序并丢失用户的状态 另一种可能是用户从一部电话安装和创建帐户,并使用另一部电话登录,因此在这种情况下,您必须访问firebase数据以验证用户的状态 当管理员批准后,您可以考虑使用firebase通知通知应用程序,当用户打开应用程序时,您可以轻松重定向到主屏幕
您可以在登录后使用redux persist并存储元数据,这将有助于快速加载应用程序,而不依赖后端数据。是否要检查后端数据是否有效?或者您想检查它是否已填写且有效(例如电子邮件)?更好的是,选项2的问题是,我需要检查每个页面中的当前用户,这似乎不是最佳做法。确实,您可以在redux中维护当前用户,但如果用户使用不同的电话登录,你必须考虑管理这样的场景。由于这是用户创建的一部分,因此api调用不会产生很大影响
{
"users": {
"user1": {
"name": "Ada Lovelace",
"isFilled": false,
"isValid": false,
},
"user2": { ... },
"user3": { ... }
}
}