Mic*_*ogu 2 javascript firebase firebase-security firebase-realtime-database
考虑Firebase快速入门指南中引用的此数据结构(此处)
{"name": {"first": "Fred","last": "Flintstone"}
Run Code Online (Sandbox Code Playgroud)
文档说,可以使用以下命令访问查询返回的"name"的每个子对象的数据快照位置:
var ref = new Firebase("https://docs-examples.firebaseio.com/samplechat/users/fred");
ref.once("value", function(snapshot) {
var nameSnapshot = snapshot.child("name");
var name = nameSnapshot.val();
name === { first: "Fred", last: "Flintstone"}
var firstNameSnapshot = snapshot.child("name/first");
var firstName = firstNameSnapshot.val();
firstName === "Fred"
var lastNameSnapshot = snapshot.child("name").child("last");
var lastName = lastNameSnapshot.val();
lastName === "Flintstone"
var ageSnapshot = snapshot.child("age");
var age = ageSnapshot.val();
age === null (because there is no "age" child in the data snapshot)
});
Run Code Online (Sandbox Code Playgroud)
但是,当处理以下行时,有点奇怪.
var nameSnapshot = snapshot.child("name");
var name = nameSnapshot.val();
Run Code Online (Sandbox Code Playgroud)
name.first和name.last也被检索.那么为什么要使用这个快照方法"child()"呢?或者更确切地说,何时使用此方法是有益的,因为当您拉动父对象时,Firebase会提取所有子节点,或者有没有办法检索父节点/对象而不会拉动它的某些子节点?那么这个方法对我来说是有道理的.
任何信息将不胜感激!谢谢
有没有办法检索父节点/对象而不拉动它的一些孩子?
Firebase JavaScript API始终检索完整节点.所以:不,JavaScript API中没有办法获得浅薄的结果/
为什么要使用这种快照方法
child()?
如果我们比较snapshot.child("property")有snapshot.val().property.该DataSnapshot.child()方法返回一个DataSnapshot,您可以从中ref再次获得.该val()方法将快照的值反序列化为JSON.因此,如果您需要,您必须构建自己的参考.但每个的价值在很大程度上取决于你的用例,所以"为什么"不是我能为你解答的.
| 归档时间: |
|
| 查看次数: |
15575 次 |
| 最近记录: |