当您调用快照或将其用于某些事情时,它会下载数据吗?例如,下面的代码是从"pushedItem3“下载数据还是下载所有数据?
示例数据:
List-1: {
pushedItem1: {data},
pushedItem2: {data},
pushedItem3: {data}
},
List-2: {
pushedItem3: {data},
pushedItem4: {data},
pushedItem5: {data}
}
下面的代码搜索每个列表中的"pushedItem3“。
ref.on("child_added", function(snap){
var listID = snap.key();
ref.child(listID).child("pushedItem3").on("value", function(shot){
console.log(shot.val());
}
}
这看起来不太像,但对我来说,这是用户下载我的整个防火墙或者仅仅是相关数据之间的区别。
发布于 2015-07-09 03:06:31
数据是在调用回调时下载的。所以在你的代码中:
// nothing is downloaded yet
ref.on("child_added", function(snap){
// the key and value of snap are downloaded
var listID = snap.key();
ref.child(listID).child("pushedItem3").on("value", function(shot){
// the key and value of shot are downloaded
console.log(shot.val());
}
}
这就是为什么Firebase文档建议不要任意嵌套数据。
当我们在数据库中读取一个数据节点时,我们还检索了它的所有子节点!
这是文档中的警告,但您确实应该阅读整个页面。
附带注意:通过访问Chrome的“网络”选项卡并检查WebSockets流量,您可以轻松地监控Firebase正在检索的数据。
https://stackoverflow.com/questions/31306276
复制相似问题