我似乎无法将计数器值设置为最后插入的查询的ID。好像是空的?
componentDidMount() {
//Last inserted query
let postRef = firebase.database().ref('clients').orderByKey().limitToLast(1);
//Fetch the data from the query
postRef.on('value', snapshot => {
this.setState({ counter: snapshot.child('clients').child('ID').val()});
});
}
答案 0 :(得分:1)
这应该可以解决问题:
let postRef = firebase.database().ref('clients').orderByKey().limitToLast(1);
postRef.once('child_added', snapshot => {
this.setState({ counter: snapshot.child('ID').val()});
});
我对您的代码进行的更改:
once
而不是on
,因为我假设您不打算获得连续更新。如果您确实想在添加/删除键时接收更新,请使用on
。child_added
,因为它会触发正确的子节点。如果您监听value
,则需要遍历快照(使用snapshot.forEach()
遍历子节点。child('clients')
,因为每个孩子下都没有clients
节点。