我想自动化firestore数据库的备份过程。我们的想法是遍历根文档以构建JSON树。 但我没有找到一种方法来获取文档的所有集合。我想这是可能的,因为在firestore控制台中我们可以看到树。 有什么想法吗?
答案 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)
示例代码:
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}`);
});
});