无法在异步Firebase方法的for每个循环之外发送响应。当我在for-each循环中发送响应时,它只给出一次,但是我需要程序末尾的整个数组。
const admin = require("firebase-admin");
const functions = require("firebase-functions");
admin.initializeApp(functions.config().firebase);
let db = admin.firestore();
exports.helloWorld = functions.https.onRequest(function(request, response) {
var dat = [];
var dat1 = [];
db.collection("users")
.get()
.then(function(snapshot) {
dat.push(element.id);
return snapshot;
})
.catch(err => {
console.log("Error getting documents", err);
});
dat.forEach(element => {
db.collection("users")
.doc(element.id)
.collection("profile")
.doc(element.id)
.collection("pet")
.doc(element.id)
.get()
.then(snapshot => {
dat1.push(snapshot.data()["bio"]);
return snapshot;
})
.catch(err => {
console.log("Error getting documents", err);
});
});
response.send(dat1);
});
我必须从firebase数据库中获取数据数组。当我发送响应时,它返回一个空数组,如上面的示例所示。我是Javascript和Node.js编程的初学者。