简体   繁体   English

反应本机Firebase设置

[英]React Native Firebase Set Up

I am trying to grab data from my firebase DB within my react native application. 我正在尝试从我的本机应用程序中的Firebase数据库中获取数据。

I have it set up correctly (as far as I can see) but when the application renders I don't see any data. 我已经正确设置(据我所知),但是当应用程序渲染时,我看不到任何数据。

I have a component FirebaseList.js 我有一个组件FirebaseList.js

const firebaseConfig = {
  **Details**
};
firebase.initializeApp(firebaseConfig);

const data = [];

class FirebaseList extends Component {
  constructor(props) {
    super(props);

    this.ds = new ListView.DataSource({ rowHasChanged: (r1, r2) => r1 !== r2 });

    this.state = {
      listViewData: data,
    };
  }

  render() {
    return (
      <List
      dataSource={this.ds.cloneWithRows(this.state.listViewData)}
      renderRow={data =>
        <ListItem>
          <Text>{data}</Text>
        </ListItem>
      }
      />
    );
  }
}

I call this component elsewhere - my export is set up correctly as are my imports. 我将此组件称为其他组件-导出设置正确,导入也设置正确。

Thanks in advance. 提前致谢。

You should fetch data from firebase in componentDidMount()! 您应该在componentDidMount()中从firebase中获取数据!

 import firebase from 'firebase'; class FirebaseList extends Component { constructor(props) { super(props); this.ds = new ListView.DataSource({ rowHasChanged: (r1, r2) => r1 !== r2 }); this.state = { listViewData: [], }; } componentWillMount() { const firebaseConfig = { **Details** }; firebase.initializeApp(firebaseConfig); } componentDidMount() { firebase.database().ref('/path/datas/').once('value', snapshot => { const dataArray = []; const yourDatas = snapshot.val(); for(let data in yourDatas){ dataArray.push(data) } this.setState({ listViewData: dataArray }); }) } render() { return ( <List dataSource={this.ds.cloneWithRows(this.state.listViewData)} renderRow={data => <ListItem> <Text>{data}</Text> </ListItem> } /> ); } } 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM