-1
私はGoogle Cloud Functionを使用していますが、古いバージョンのNodeで動作しているので、もうthis答えは使用できません。コレクション内のすべてのドキュメントをバッチ処理してそこからデータを返す関数が必要です。これは私の試みです:削除されたドキュメントデータを返すと未定義です
function deleteCollectionAndReturnResults(db, collectionRef, batchSize) {
var query = collectionRef.limit(batchSize);
return deleteQueryBatch(db, query, batchSize, []);
}
function deleteQueryBatch(db, query, batchSize, results) {
return query.get().then(snapshot => {
if (snapshot.size == 0) return 0;
var batch = db.batch();
snapshot.docs.forEach(doc => {
if (doc.exists) {results.push(doc);}
batch.delete(doc.ref);
});
return batch.commit().then(() => snapshot.size);
}).then(function(numDeleted) {
if (numDeleted >= batchSize) {
return deleteQueryBatch(db, query, batchSize, results);
}else{
return results
}
});
}
しかし、私はこのようにそれを実行します。
exports.tester = functions.firestore.document('x/{x}').onCreate(event => {
deleteCollectionAndReturnResults(db, db.collection("x"), 100).then(docs => {
console.log(docs)
})
})
これが私の出力である:私は得るか、なぜ
は、何か問題はあります'関数は未定義を返しました'?