forEach与客户端中的单个文档Firebase查询?

时间:2019-11-01 06:07:13

标签: javascript html arrays firebase google-cloud-firestore

对于每个循环,当我在forEach循环查询中进行查询但没有将obj推入数组时,我具有不同的文档ID

  function getAllDonations() {
        donations = [];
        const user_session_data = sessionStorage.getItem('LoginInfo');
        const parse_user_login_data = JSON.parse(user_session_data);
        let TABLE_NAME = "donation_favourites";
        let get_requests_qry = App.db.collection(TABLE_NAME);
        get_requests_qry.where('user_id', '==', parse_user_login_data.user_id).get().then(snapshot => {
            let changes = snapshot.docChanges();
            changes.forEach(change => {
                var one_item = change.doc.data();
                let TABLE_NAME1 = "donation_requests";
                let get_requests_qry1 = App.db.collection(TABLE_NAME1);      
                   get_requests_qry1.doc(one_item.donationId).get().then(snapshot => {
                    donations.push(snapshot.data())                       
                });          
            }); 
            console.log("checking the data",donations.length)  //this length is not coming         
        });
    }

1 个答案:

答案 0 :(得分:2)

如果您想读取使用中的文件forloop,但是不建议将其用于大循环,而对于小循环则可以 如果要并行使用forEach读取文件

您也可以使用asyncawait代替循环

await Promise.all(changes.map(async (change) => {
   var one_item = change.doc.data()
   let TABLE_NAME1 = "donation_requests";
   let get_requests_qry1 = App.db.collection(TABLE_NAME1);
   var snapshot1 = await get_requests_qry1.doc(one_item.donationId).get()
   donations.push(snapshot1.data())
}));