2017-10-28 53 views
3

在我的Firestore数据库中,我有一个集合APPFIRESTORE - 如何获取文档中集合的值?

它有一个文件doc1

doc1还有一个子集合coll1

考虑下面的例子。

let db = firebaseApp.firestore(); 

db.collection('APP').doc('doc1').get() 
    .then(doc => { 
    let doc1Data = doc.data(); 
    }); 

我该如何检查响应中的集合。或者当我已经知道有一个子集合coll1,我该如何循环访问它的文档。

回答

4

如果你不知道该集合ID,您就可以使用listCollectionIds方法把他们都弄到:

var firestore = require('firestore.v1beta1'); 

var client = firestore.v1beta1({ 
    // optional auth parameters. 
}); 

var formattedParent = client.anyPathPath("[PROJECT]", "[DATABASE]", "[DOCUMENT]", "[ANY_PATH]"); 

client.listCollectionIds({parent: formattedParent}).then(function(responses){ 
    var collectionIds = responses[0]; 
    for (var i = 0; i < collectionIds.length; ++i) { 
     // doThingsWith(collectionIds[i]) 
    } 
}) 
.catch(function(err) { 
    console.error(err); 
}); 

但是,这听起来像你已经知道它叫col1,所以它更容易 - 只是引用它:

db.collection('APP').doc('doc1').collection('col1').get() 
    .then(snapshot => { 
     snapshot.forEach(doc => { 
      console.log(doc.id, '=>', doc.data()); 
     }); 
    }) 
    .catch(err => { 
     console.log('Error getting documents', err); 
    }); 
+0

谢谢。听起来不错。但是有什么快照方法让我们知道它是否在循环时有子集合(第二代码片段)。只是为了保持简单。 –

+0

没有像实时系统监控的信息那样独立的信息。 –

+0

完美的男人!非常感谢! :) –

相关问题