Печать данных с определенным ключом из Firebase - PullRequest
0 голосов
/ 02 июня 2019

В моем приложении React Native я пытаюсь распечатать данные из моей базы данных Firebase, которые имеют определенный ключ (переданный из другого компонента).Я использовал похожий код, который использовал для получения всех данных базы данных, но получаю пустое пространство.

var data = []
var currentUser;

class FavPlant extends React.Component {

constructor(props){
    super(props)

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

     this.state = {
         listViewData : data
     }
 }

 componentDidMount(){

  const { navigation } = this.props;
  const keyPlant = navigation.getParam('keyPlant');

  firebase.auth().onAuthStateChanged((user) => {

    if (user != null) {
      var that = this

    firebase.database().ref(user.uid).child('plantList').equalTo('keyPlant').on('child_added',function(data){

        var newData = [...that.state.listViewData]
        newData.push(data)

        that.setState({ listViewData: newData})

    });
  }
})
 }

render(){ return(
<Container>
      <Content>
         <ListView
            enableEmptySections
            dataSource = {this.ds.cloneWithRows(this.state.listViewData)}
            renderRow={data =>
                <Text>{data.val().bloom}</Text>
            }/>
            </Content>
        </Container>
 )}

Database structure

1 Ответ

0 голосов
/ 02 июня 2019

Если в вашем JSON есть элемент DatabaseReference для plantList:

var plantListRef = ...

Тогда вы можете получить дочерний узел с определенным ключом с помощью:

plantListRef.child("-Lg-l2GOOVC_Hni5a3ng").on('value',function(snapshot){
  console.log(snapshot.key); // prints "-Lg-l2GOOVC_Hni5a3ng"
  console.log(snapshot.val());
});
...