作成日に依存するクラウド関数を使用してコレクション内のすべてのドキュメントの値を更新したいのですが、Cloud Firestoreトリガーの例を見ると、すべてのイベントが1つのドキュメントにしかアクセスできないようです。すべてのドキュメントをループする方法はありますか?
通常、CloudFunctionsコードではそのためにAdminSDKを使用します。それができたら、いつものようにコレクションを読むだけです。 コレクションからすべてのドキュメントを読み取る際のfirebaseドキュメント のノードの例を確認してください:
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); });
それが可能だ。ドキュメントを配列内に取得したい場合。 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);
})