Javascript Firebase实时数据库读取操作-是否可能仅获取部分返回的文档?
我意识到这个问题被标记为重复问题-但我认为这个问题更全面、更容易理解,因此更有可能帮助他人。(^ _^) 我读过有关从Firebase实时数据库读取数据的内容。 我没有找到任何关于如何控制从读取查询返回的数据的文档 考虑以下结构:Javascript Firebase实时数据库读取操作-是否可能仅获取部分返回的文档?,javascript,firebase,firebase-realtime-database,Javascript,Firebase,Firebase Realtime Database,我意识到这个问题被标记为重复问题-但我认为这个问题更全面、更容易理解,因此更有可能帮助他人。(^ _^) 我读过有关从Firebase实时数据库读取数据的内容。 我没有找到任何关于如何控制从读取查询返回的数据的文档 考虑以下结构: -users -EiYu7OWooToo6noo alias: "Kermit" createdAt: 1538330532000 firstName: "Kermit" surName: "Frogman" pictu
-users
-EiYu7OWooToo6noo
alias: "Kermit"
createdAt: 1538330532000
firstName: "Kermit"
surName: "Frogman"
pictureURL: "/imgs/kermit.png"
phonePrimary: "555-1234"
email: "kermit@themuppetshow.com"
-myBooks
-A1234567890
title: "Frogs 101"
...
有没有办法告诉Firebase实时数据库只返回部分文档数据
此代码返回整个文档:
var ref = db.ref(`users/${uid}`);
ref.once("value", (snapshot) => {
console.log(snapshot.val());
}, function (errorObject) {
console.log("The read failed: " + errorObject.code);
});
是否可以只获取部分文档,例如:
{
alias: "Kermit"
firstName: "Kermit"
}
我的理由是,当读取大量数据时,这将是一个巨大的性能增益。但是有可能吗?您不能为查询选择子节点的子集。节点上的每个查询总是获取节点的全部内容—所有子节点及其子节点
如果只需要子对象的子集,则必须对每个子对象执行不同的查询。或者,您可以以这样的方式组织数据,即在特定节点上收集常用分组字段。console.log(snapshot.val().alias+“”+snapshot.val().firstName);是的,这将过滤结果,但整个文档仍将从查询中返回?我把我的问题修改得不那么模棱两可。或者您的意思是我可以指定我希望从查询返回的文档的哪些部分?如果您的目标是var ref=db.ref(
users/${uid}/alias
);你只会得到真实的别名,谢谢!那就意味着两个请求,对吗?1.ref=db.ref(users/${uid}/别名);2.ref=db.ref(users/${uid}/firstName);是的,但我不确定你会在这方面有所收获。