【问题标题】:Rebase syncState does not update Firebase dataRebase syncState 不会更新 Firebase 数据
【发布时间】:2018-02-08 11:06:34
【问题描述】:

我正在使用 Mobx + Reactjs + Firebase + Re-base

我有我的 base.js 之类的:

import firebase from 'firebase';
import Rebase from 're-base';
import 'firebase/database';

var app = firebase.initializeApp({
    apiKey: "xxxxxx",
    authDomain: "xxxxxx",
    databaseURL: "xxxxx",
    projectId: "xxxxxx",
    storageBucket: "xxxxx",
    messagingSenderId: "xxxxxx"
  });

  export var db = firebase.database(app);
  var base = Rebase.createClass(db);

  export default base;

在我的 TodoList.jsx 上

@observer
class TodoList extends React.Component {

  constructor(props){
    super(props);

    this.state={
      todos: []
    };

    this.todosRef = base.syncState(`todos`,{
      context: this,
      state:'todos',
      asArray: true,
      then: function(spa){
        console.log("Success!", spa);
      },
      onFailure: function(){
        console.log("Failed!");
      }
    });


    //this.setState({
    //  todos: this.props.store.todos
    //});

    console.log("this.state.todos", this.state.todos);
  }
  ...........

我还做了什么:

我运行了 firebase-cli 命令:

firebase init(我选择了单页应用,设置数据库规则读写为真以用于测试目的) 它会创建几个文件。

但是无论我如何更改代码,我的网络应用程序中的数据都不会更新到我的 Firebase 数据库中。

【问题讨论】:

    标签: reactjs firebase firebase-realtime-database rebase mobx


    【解决方案1】:
      export var db = firebase.database(app);
    

    应该是:

    export var db = app.database();
    

    您的 syncState 内容应该在 componentDidMount(){...} 中。

    【讨论】:

      【解决方案2】:

      在我的情况下,我正在从 react chrome 开发工具更新状态,不会更新你的 firebase 数据库。只有使用 setState 以编程方式更新状态才会

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-09-04
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多