【问题标题】:forEach with single document firebase queries in client side?forEach 在客户端使用单个文档 Firebase 查询?
【发布时间】:2020-02-27 11:46:04
【问题描述】:

每个循环我都有不同的文档 ID,当我在 forEach 循环中查询时,查询正在工作,但没有将 obj 推送到数组中

  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         
        });
    }

【问题讨论】:

  • 你在获取 snapshot.data() 检查 console.log(snapshot.data()) 并给我答案。
  • 是的,snapshot.data() 正在获取
  • 你从捐款中得到了什么?
  • 每当我记录捐赠时,它都会显示数据,但我无法记录或执行捐赠[0]或donations.length或donations.map
  • 显示你的日志数据。

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


【解决方案1】:

如果您想读取正在使用的文件 forloop 但不建议将大循环用于小循环,也可以 如果你想并行读取文件,请使用 forEach

你也可以用async 和await 代替forLoop

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())
}));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多