Javascript 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

我意识到这个问题被标记为重复问题-但我认为这个问题更全面、更容易理解,因此更有可能帮助他人。(^ _^)

我读过有关从Firebase实时数据库读取数据的内容。

我没有找到任何关于如何控制从读取查询返回的数据的文档

考虑以下结构:

-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);是的,但我不确定你会在这方面有所收获。