2017-10-28 93 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

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

相關問題