Firestore - 获取文档集合

时间:2017-10-28 12:09:48

标签: firebase google-cloud-firestore

我想自动化firestore数据库的备份过程。我们的想法是遍历根文档以构建JSON树。 但我没有找到一种方法来获取文档的所有集合。我想这是可能的,因为在firestore控制台中我们可以看到树。 有什么想法吗?

5 个答案:

答案 0 :(得分:8)

firebase.initializeApp(config);

const db = firebase.firestore();

db.settings({timestampsInSnapshots: true});

const collection = db.collection('user_dat');

collection.get().then(snapshot => {

  snapshot.forEach(doc => {

    console.log( doc.data().name );    
    console.log( doc.data().mail );

  });

});

答案 1 :(得分:5)

如果您使用的是Node.js服务器SDK,则可以使用getCollections()上的DocumentReference方法: https://cloud.google.com/nodejs/docs/reference/firestore/0.8.x/DocumentReference#getCollections

此方法将返回一个CollectionReference对象数组的承诺,您可以使用它来访问集合中的文档。

答案 2 :(得分:5)

它可以在网上(客户端js)

@if(count($product) ==  3)                                              
    <div class="clearfix"></div>
@endif

感谢@marcogramy评论

答案 3 :(得分:1)

NodeJS可以使用

getCollections()方法。

示例代码:

    db.collection("Collection").doc("Document").getCollections().then((querySnapshot) => {
    querySnapshot.forEach((collection) => {
        console.log("collection: " + collection.id);
        });
    });

答案 4 :(得分:0)

正如其他人所提到的,在服务器端,您可以使用getCollections().来获取所有根级集合,如下所示在db上使用它:

const serviceAccount = require('service-accout.json');
const databaseURL = 'https://your-firebase-url-here';
const admin = require("firebase-admin");
admin.initializeApp({
    credential: admin.credential.cert(serviceAccount),
    databaseURL: databaseURL
});
const db = admin.firestore();
db.settings({ timestampsInSnapshots: true });
db.getCollections().then((snap) => {
    snap.forEach((collection) => {
        console.log(`paths for colletions: ${collection._referencePath.segments}`);
    });
});