2017-10-28 23 views
3

私のFirestoreデータベースには、コレクションAPPがあります。FIRESTORE - ドキュメント内のコレクションの値を取得する方法は?

doc1です。

DOC1はさらに、子コレクションcoll1を持っています。

次の例を考えます。

応答でコレクションをチェックする方法はありますか。または、すでに子コレクションがあることがわかったらcoll1、どうすればその文書をループすることができますか?

答えて

4

あなたはそれらをすべて取得するにはlistCollectionIdsメソッドを使用することができ、コレクションIDを知らない場合は、次の

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

ありがとうございます。興味深いですね。しかし、スナップショットには、ループ中に子コレクションがあるかどうかを知る方法があります(2番目のコードスニペット)。物事をより簡単に保つため。 –

+0

リアルタイムシステムが監視しているものとは別個の情報ではありません。 –

+0

完璧な男!どうもありがとうございます! :) –

関連する問題