`react-redux-firebase` 解决了啥问题?
Posted
技术标签:
【中文标题】`react-redux-firebase` 解决了啥问题?【英文标题】:What problem does `react-redux-firebase` solve?`react-redux-firebase` 解决了什么问题? 【发布时间】:2019-12-29 02:59:28 【问题描述】:我是所有这些技术的新手,但据我了解,您可以在没有 react-redux-firebase
的情况下将 React Native 与 Redux 和 Firebase 一起使用。你可以使用
react
react-native
redux
react-redux
react-native-firebase
然后您从 Firebase(例如 Firestore)加载数据并将数据放入 reducer,以便将其合并到 redux 存储中。
我为什么需要react-redux-firebase
?它解决了什么问题?
我已经尝试过它的docs,但它们似乎是为已经熟悉其目标的人编写的。他们并没有真正解释,在阅读示例时,我不明白为什么我特别需要react-redux-firebase
而不是上面列出的设置。
【问题讨论】:
它添加了 README 中列出的功能。重点是明确不要手动做所有事情——你当然可以这样做。 @DaveNewton 这正是我的问题:图书馆可以为我做些什么手动操作? README 例如说“开箱即用的身份验证支持”。但是react-native-firebase
可以用一行代码做到这一点:firebase.auth().signInWithEmailAndPassword(...)
。我不明白为什么这比docs.react-redux-firebase.com/history/v3.0.0/docs/auth.html 更多的手工工作
不知道;看不到你的代码。你的 sn-p 创建一个用户; r-r-f 的 auth 文档显示的功能比创建用户更多。与您现在所做的工作相比,它是更多还是更少,这是无法猜测的。
@DaveNewton 我还没有任何代码,我只是想找出我需要哪个库。您是否知道一个明显可见 r-r-f 节省手动工作的示例?就像,一个“手动”示例,然后与 r-r-f 相同?
明白了,(在我看来)repo home 似乎回答了这些问题。您不太可能为“辅助”库找到与“核心”库一样多的资源,因为一旦您脱离了“核心”技术,基本上就有无限多的选择。
【参考方案1】:
Firebase 处于您的状态,听它并修改它,它将改变您的 Firebase 数据库。数据库上的数据发生变化后,监听的组件也会发生变化。
这将在数据库中创建一个项目
updateTodo: props => () =>
return firebase.update(`todos/$params.todoId`, done: !todo.isDone )
所以任何监听该节点的组件都会得到更新:
connect((state) => (
todos: state.firebase.data.todos,
// profile: state.firebase.profile // load profile
))
它解决了多个事实来源的问题,您的 Firebase 数据库是您唯一的事实来源,否则,您更改本地数据,然后在线更新数据,然后如果它有效没有别的,但如果它失败了,你必须再次更新本地数据
【讨论】:
它是否更新了connect
函数以便它自动监听数据库中的变化?它会自动将 redux 状态存储在 Firebase 中吗?
是的!将数据更改为 firebase-redux 将更改在线数据库上的数据。然后每个监听该 firebase-redux 状态的组件都会更新到 UI 级别。基本体现了在线数据库的结构,可以直接修改。以上是关于`react-redux-firebase` 解决了啥问题?的主要内容,如果未能解决你的问题,请参考以下文章
如何纠正 Redux 商店中的 React-Redux-Firebase 错误
使用 react-redux-firebase 消费云功能 - React JS
使用 React 和 react-redux-firebase 在登录期间确定范围
如何使用 react-redux-firebase 将 'auth' 或 'profile' 对象传递给 firestoreConnect()?