Javascript 内部仅包含集合的Firestore查询文档

Javascript 内部仅包含集合的Firestore查询文档,javascript,firebase,google-cloud-firestore,Javascript,Firebase,Google Cloud Firestore,我有一个firestore收藏,里面有一些文档。文档仅包含集合,不包含任何字段。因此,当我尝试获取根集合中的所有文档时,快照大小为零。有没有办法得到没有字段但里面有一些集合的文档 我的firestore结构是 您还可以看到文档的id以斜体显示 用于检索数据的代码 db.collection("transactions").get() .then(snapshot => { console.log(snapshot.size); returns zero

我有一个firestore收藏,里面有一些文档。文档仅包含集合,不包含任何字段。因此,当我尝试获取根集合中的所有文档时,快照大小为零。有没有办法得到没有字段但里面有一些集合的文档

我的firestore结构是

您还可以看到文档的id以斜体显示

用于检索数据的代码

  db.collection("transactions").get()
    .then(snapshot => { 
      console.log(snapshot.size); returns zero
    })
改编自


我问了同样的问题:@J.Doe不是同样的问题。“您知道文档名称,因此可以使用getCollections方法,”我对您的问题进行了评论。我的问题是,我如何才能得到里面只有集合的文档名。据我所知,目前还没有一个API。但是,文档ID以斜体显示是因为顶级文档已被删除,而不是因为它们仅包含集合。这些在Firebase UI中仍然可见,但您将无法查询它们,这就是快照长度为零的原因。顶级文档已被删除??我不明白这一点,例如,如果在某个时候删除了“transactions”集合,则删除不会是递归的,因此下面的文档仍然存在。如果文档没有字段或集合为空,则也是如此。Firebase UI以斜体显示,表示无法查询。
let date = '2017-12-20' //date to be set in doc

db.collection("transactions").doc(date).set({
  //set an empty object for each doc in transaction before your method 
  //of setting data 
  //This will create a field for each doc in transaction
})
.then(()=>{
  //your method of setting data here.
})
//Your query method here.
//Now you will be able to query the docs in collection - transaction.
db.collection("transactions").doc("2018-01-02").collection("education-1").get()
    .then(function(querySnapshot) {
        querySnapshot.forEach(function(doc) {
            // doc.data() is never undefined for query doc snapshots
            console.log(doc.id, " => ", doc.data());
        });
    })
    .catch(function(error) {
        console.log("Error getting documents: ", error);
    });