我知道此问题被标记为重复-但我认为此问题更全面,更容易理解,因此更有可能为他人提供帮助。 (^ __ ^)
我已阅读有关从Firebase实时数据库读取数据的信息。 https://firebase.google.com/docs/database/admin/retrieve-data
我还没有找到有关如何控制从读取查询返回哪些数据的文档。
请考虑以下结构:
-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"
}
我的理由是,在读取大量数据时,这将带来巨大的性能提升。但是有可能吗?
答案 0 :(得分:2)
您不能为查询选择子节点的子集。节点上的每个查询总是获取该节点的全部内容-所有子代及其子代。
如果只希望子集的一部分,则必须对每个子集执行不同的查询。另外,您可以以一种方式组织数据,以便将通常分组的字段收集到一个特定的节点上。