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
我试图实现的是: 如果用户注册但未填写“姓名/电话/图像”部分,则在重新安装或注销后再次登录时,他将自动重定向到“填写姓名/电话/图像”页面, 如果用户填写了信息,但未被管理员更改,请将其发送到等待页面 如果用户填写了和信息,并且已经过管理员验证,请将其发送到主页

现在我在两个选项之间摇摆不定:

  • 使用redux persist并在Auth中保存用户状态

  • 使用Firebase实时数据库,为每个注册用户提供isFilled和isValid道具,如下所示:

  • 然后相应地重定向

    所以我的问题是什么样的方式更好1或2?
    或者,如果有更好的方法来实现这一点,我很乐意听到:)

    首选选项2

    很好,您已经考虑过在redux persist中本地缓存状态,但问题是用户卸载和安装应用程序并丢失用户的状态

    另一种可能是用户从一部电话安装和创建帐户,并使用另一部电话登录,因此在这种情况下,您必须访问firebase数据以验证用户的状态

    当管理员批准后,您可以考虑使用firebase通知通知应用程序,当用户打开应用程序时,您可以轻松重定向到主屏幕


    您可以在登录后使用redux persist并存储元数据,这将有助于快速加载应用程序,而不依赖后端数据。

    是否要检查后端数据是否有效?或者您想检查它是否已填写且有效(例如电子邮件)?更好的是,选项2的问题是,我需要检查每个页面中的当前用户,这似乎不是最佳做法。确实,您可以在redux中维护当前用户,但如果用户使用不同的电话登录,你必须考虑管理这样的场景。由于这是用户创建的一部分,因此api调用不会产生很大影响
    {
      "users": {
        "user1": {
          "name": "Ada Lovelace",
          "isFilled": false,
          "isValid": false,
    
        },
        "user2": { ... },
        "user3": { ... }
      }
    }