是否可以在Firestore Cloud功能中获取所有文档?

时间:2017-11-30 04:58:30

标签: google-cloud-functions google-cloud-firestore

我想使用云功能更新集合中所有文档的值,因为它们取决于创建日期,但查看Cloud Firestore触发器示例,看起来所有事件都只能访问单个文档。有没有办法循环所有文件?

2 个答案:

答案 0 :(得分:10)

您通常会在Cloud Functions代码中使用Admin SDK。一旦你有了这个,就像往常一样阅读这个集合。检查firebase documentation on reading all documents from a collection

中的节点示例
const admin = require('firebase-admin');

admin.initializeApp({
    credential: admin.credential.applicationDefault()
});

var db = admin.firestore();

var citiesRef = db.collection('cities');
var allCities = citiesRef.get()
    .then(snapshot => {
        snapshot.forEach(doc => {
            console.log(doc.id, '=>', doc.data());
        });
    })
    .catch(err => {
        console.log('Error getting documents', err);
    });

答案 1 :(得分:0)

有可能。 如果您想将文档放入数组中。没有foreach。

const admin = require('firebase-admin');
admin.initializeApp({
    credential: admin.credential.applicationDefault()
});

const docRef = admin.firestore().collection('cities');
docRef.get()
.then(snapshot => {
    let arrayR = snapshot.docs.map(doc => {
       return doc.data();
    }); 
    res.json(arrayR);        
}).catch(function(error){
    console.log("got an error",error);        
})