在firebase中我想访问如下编写的数据库。
<script>
function fnReadMails(){
var user = firebase.auth().currentUser;
var ref = firebase.database().ref('/posts/'+user.uid);
ref.on("value", function(snapshot) {
var vardata = (snapshot.val());
console.log(vardata);
});
}
</script>
问题是以红色标记的字符串是随机生成的唯一按键。每当我得到一个引用时,我可以将ref提升到一个级别,即userid
,但我想访问该键中的数据,我不知道它将自动为下一个帖子生成。< / p>
如何访问密钥内的嵌套数据?
答案 0 :(得分:2)
您需要child_added
事件类型,这会记录您参考下的每个孩子的快照。
ref.on("child_added", function(snapshot) {
console.log(snapshot);
});
答案 1 :(得分:2)
作为Callam答案的替代方案,您还可以继续使用value
事件。但在这种情况下,您必须使用forEach()
:
ref.on("value", function(snapshot) {
snapshot.forEach(function(messageSnapshot) {
console.log(messageSnapshot.val());
}
});
这两种方法(使用value
与使用child_*
)都会产生相同的网络流量。但使用value
通常更容易上手,而使用child_
事件可以更轻松地更新需要更新的特定UI元素。