Javascript 内部仅包含集合的Firestore查询文档
我有一个firestore收藏,里面有一些文档。文档仅包含集合,不包含任何字段。因此,当我尝试获取根集合中的所有文档时,快照大小为零。有没有办法得到没有字段但里面有一些集合的文档 我的firestore结构是 您还可以看到文档的id以斜体显示 用于检索数据的代码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
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);
});