Я новичок в облачных функциях. Мне удалось выполнить простой запрос и успешно отправить результат клиенту. Однако, когда я задаю второй запрос, я всегда получаю объект результата в том виде, в каком он был объявлен изначально: {res: "", data: Array (0)}
Я вроде как застрял, любая помощь будет очень оценил ...
export const validaId1 = functions.https.onCall((input, context) => {
const admin = require('firebase-admin');
var directorsArray: any = [];
var result = { res: "", data: directorsArray };
if (!admin.apps.length) {
admin.initializeApp({
credential: admin.credential.applicationDefault()
});
}
//FIRST QUERY, WORKS PERFECT...
var db = admin.firestore();
const query = db.collection("users").doc(input);
return query.get().then((doc: any) => {
if (doc.exists) {
**//SECOND QUERY. I'M SURE WORKS RIGHT, BUT I JUST CAN'T GET THE RESULT SENT**
getDirectors(() => {
result.res = "OK";
result.data = directorsArray;
})
//END OF SECOND QUERY
} else
if (!doc.exists) {
result.res = "User does not exist";
result.data = [];
}
return result; //MAYBE THIS IS BEING EXECUTED BEFORE THE SECOND QUERY FINISHES??
})
.catch((err: any) => {
return {
res: "Error",
data: err
}
})
//SECOND QUERY
function getDirectors(callback: any) {
db.collection("directors").get().then((querySnapshot: any) => {
querySnapshot.forEach((director: any) => {
directorsArray.push(director);
})
}).then(() => {
callback()
})
.catch((error: any) => {
console.log("Error getting documents: ", error);
});
}
});