创建快照会下载数据吗?
Does creating a snapshot download the data?
当你调用快照或者当你使用它的时候它会下载数据吗?例如,下面的代码是只从 "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());
}
}
这可能看起来不多,但对我来说,这是用户下载我的整个 firebase 或仅下载相关数据之间的区别。
数据在您的回调被调用时下载完毕。所以在你的代码中:
// 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 documentation recommends against arbitrarily nesting data:
的原因之一
When we read a data node in our database, we also retrieve all of its children!
这是文档中的警告,但您真的应该阅读整个页面。
旁注:您可以通过转到 Chrome 的“网络”选项卡并检查 WebSockets 流量,轻松监控 Firebase 正在检索的数据。
当你调用快照或者当你使用它的时候它会下载数据吗?例如,下面的代码是只从 "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());
}
}
这可能看起来不多,但对我来说,这是用户下载我的整个 firebase 或仅下载相关数据之间的区别。
数据在您的回调被调用时下载完毕。所以在你的代码中:
// 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 documentation recommends against arbitrarily nesting data:
的原因之一When we read a data node in our database, we also retrieve all of its children!
这是文档中的警告,但您真的应该阅读整个页面。
旁注:您可以通过转到 Chrome 的“网络”选项卡并检查 WebSockets 流量,轻松监控 Firebase 正在检索的数据。