【问题标题】:Firebase Redux state architectureFirebase Redux 状态架构
【发布时间】:2021-08-27 14:37:33
【问题描述】:

我是 Firebase 的新手。我正在使用this library

我开始正常地在 redux 中开发应用程序,状态是本地的,调度操作等。我开始将它连接到 firebase,并意识到一旦用户登录,所有状态值都将来自 firebase。我对此有两个问题。

  1. firebase 是否足以替代本地状态?我不会失去通量状态管理的好处吗?

  2. 我希望我的用户能够在不登录的情况下使用该应用,我是否需要为此目的拥有一个本地状态管理系统?如果是这样,则必须编写每个动作来考虑这两种情况,这似乎有些过分。

const dataFromLocalState
const dataFromFirebase

userSignedIn ? dataFromFirebase.map() : dataFromLocalState.map()

对于行动:

<button
    onClick={() => userSignedIn ? 
                   firebase.remove(`entries/${id}`) : 
                   dispatch(deleteEntry(id));
    }
>
    Delete
</button>

【问题讨论】:

    标签: reactjs firebase redux


    【解决方案1】:
    1. 我不建议使用 Firebase 进行应用状态管理。特别不适用于网络。如果您使用的是firestore,则每次读取和写入都需要付费。

    2. 如果用户没有登录,你想如何在数据库中将它们分开?您需要为每个用户/设备设置一个唯一标识符。

    如果您需要将数据作为本地状态存储到 Firebase,最好的方法是使用中间件之类的工具将数据从 Firebase 同步到您的本地状态。

    我 prsonaly 喜欢将 Providers 用于 Firebase 状态。来自 firebase 的所有内容都存储在本地状态中。这样您的应用程序就可以离线工作(至少读取数据的最后状态)。你可以查看here我是如何处理这个状态的。

    每个 redux 库也是一个很好的解决方案。我们迁移到 Provisers 的原因是,在大型应用程序中,它们会因为通过 redux 传输的大量数据而变得迟缓。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-08-22
      • 2021-10-10
      • 2018-09-18
      • 1970-01-01
      • 2022-01-17
      • 1970-01-01
      • 2018-08-07
      • 1970-01-01
      相关资源
      最近更新 更多