Firebase实时数据库读取操作-只能返回部分文档吗?

时间:2018-11-12 18:04:29

标签: javascript firebase firebase-realtime-database

我知道此问题被标记为重复-但我认为此问题更全面,更容易理解,因此更有可能为他人提供帮助。 (^ __ ^)

我已阅读有关从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"
    }

我的理由是,在读取大量数据时,这将带来巨大的性能提升。但是有可能吗?

1 个答案:

答案 0 :(得分:2)

您不能为查询选择子节点的子集。节点上的每个查询总是获取该节点的全部内容-所有子代及其子代。

如果只希望子集的一部分,则必须对每个子集执行不同的查询。另外,您可以以一种方式组织数据,以便将通常分组的字段收集到一个特定的节点上。