I have a list of companies and i want to run loop and fetch data from firestore. The problem is the data is fetched after the loop is completed even though i am using await
const date = new Date();
var prevDay=new Date();
var daysrepeated=[];
prevDay.setDate(date.getDate()-1);
var currentYear=prevDay.getFullYear().toString();
var currentMonth=(prevDay.getMonth()+1).toString();
var dateToday=prevDay.getDate().toString().padStart(2, '0').concat("-",currentMonth,"-",currentYear);
var companyList=["company1","Company"];
for(var i=0; i<companyList.length;i++){
var userRef=await database.collection("Company").doc(companyList[i]).collection("users").get();
userRef.docs.forEach(async snapshot=>{
var userCasualLeaves=snapshot.data()['CasualLeaves'];
//The problem is here docRef is not awaiting
var docRef=await database.collection("Company").doc(companyList[i]).collection("users").doc(snapshot.data()["Email"]).collection("Year").doc(currentYear).collection("Dashboard").doc(currentMonth).collection("Leave").doc("data")
.get();
var leaveApproved=docRef.data()['leaveApproved'];
var halfDayApproved=docRef.data()['halfDayApproved'];
var finalCasualLeaveCalculaytion=parseInt(userCasualLeaves)-(parseInt(leaveApproved)+(parseInt(halfDayApproved/2)));
yearlyCasualLeave=finalCasualLeaveCalculaytion;
});
}
The loop is completed before the data is fetched from firebase