在我的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>
)}
答案 0 :(得分:0)
如果您的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());
});