在哪里同步redux商店和firebase?

时间:2018-01-22 18:31:49

标签: firebase redux synchronization

我最近开始学习react和redux,并且对于如何同步数据感到困惑?我正在使用create-react-appredux-thunk

假设我正在做一个todolist。那么我应该在redux中添加一个任务,并使用index.js中的store.subscribe将整个商店更新为firebase吗?

或者我应该更新firebase商店并然后更新redux商店?我认为这将是更好的方法,因为应用程序只会响应firebase存储而移动。 这种方法会减慢应用程序的重新渲染速度,因为数据更改必须等待异步请求完成,这对慢速Internet连接不利。并会使用户体验变慢。 喜欢这个

export const startAddTaskAction = (task) => {
  return (dispatch, getState) => {
    database.ref('tasks').push(task)
        .then(() => {
            dispatch(addTaskAction(task));
        });
  };
};

或者我在redux商店和firebase中同时更新两者?但那么如果用户互联网连接失败怎么办? Firebase无法写入自身,但redux会将任务显示为已保存? 喜欢这个

export const startAddTaskAction = (task) => {
  return (dispatch, getState) => {
    database.ref('tasks').push(task);
    dispatch(addTaskAction(task));
  };
};

我应该采用哪种方式,为什么它比其他人更好?

1 个答案:

答案 0 :(得分:0)

选择第一个,您应该等到将数据推送到Firebase中,这是最佳做法。

让我解释一下为什么应该以这种方式进行操作的情况

  1. 如果根本没有连接可以添加所有任务的用户,但是最后当他重新加载页面时,他会惊讶于根本没有数据。

  2. 对于所有对象,我们都使用_id,它是由数据库生成的,如果您不访问服务器,甚至根本不会获得数据。

  3. 与其给用户带来不可预测的结果,不如让他等待api放一些时间间隔,这比显示某些消息网络连接速度慢要好些