Firestore:查询集合是否还包括其子集合?

时间:2019-04-11 12:15:02

标签: javascript firebase google-cloud-firestore

我有一个名为用户的集合,其中包括他们的姓名和其他个人详细信息,并且还有一个由他们的车辆组成的子集合。

但是对于某些操作,我只想查询用户数据。恐怕它还会包含子集合,这会增加我的数据使用量。

数据库结构如下所示:

enter image description here

db.collection("users").limit(10)
.get()
.then(function(querySnapshot) {     
  querySnapshot.forEach(function(doc) {
    console.log(doc.data());
     $scope.userList.push(doc.data());           
  });           
})
.catch(function(error) {
  console.log("Error getting documents: ", error);
});

我正在获取数据,但是我不确定这是否是正确的查询方式。

2 个答案:

答案 0 :(得分:2)

与在Firebase实时数据库中显示用户列表的用户不同,您将已经下载了整个User对象以及该对象内存在的所有子对象,在Cloud Firestore中,这不再是问题。因此,如果您在文档中包含子集合,则不会下载它们。

Firestore中的查询很浅:它们仅从运行查询的集合中获取项目。无法通过单个查询从顶级集合以及其他集合或子集合中获取文档。因此,不必担心这些子集合。

答案 1 :(得分:1)

FireStore查询很浅,这意味着它们仅返回您正在查询的级别的文档,而不会返回其子集合。

如果还要获取子集合,则需要对此进行单独的查询。