Firebase,Vue js,Vuexを使用しアプリケーションを作成しています。
Firebase realtime database からデータをループにて取得しようと試みています。
shopsDataにはデータが3つ保存されているのに、ループは一度しか実行されません。
Promise型で返ってくるものをループで回すことはできますでしょうか??
また、それは現実的ですか??
javascript
1for (var shop_uid in shopsData) { 2 //shop info 3 return db.ref('/shops/' + shop_uid).once('value').then(snapshot => { 4 if (snapshot.val()) { 5 commit(types.SET_SHOP, { 6 shopData: snapshot.val(), 7 uid: shop_uid 8 }) 9 } 10 }) 11}
↓javascritpそと側
javascript
1 return db.ref('/orgs/' + snapshot.val().org).once('value').then(snapshot => { 2 commit(types.SET_ORG, snapshot.val()) 3 let shopsData = snapshot.val().shops 4 5 return db.ref('/shops/' + currentShop).once('value').then(snapshot => { 6 commit(types.SET_CURRENTSHOP, snapshot.val()) 7 8 //assignStepsMaster all shop info 9 return db.ref('/paymentMethodMaster/' + currentShop).once('value').then(snapshot => { 10 commit(types.SET_PAYMENT_METHOD_MASTER, snapshot.val()) 11 12 return db.ref('/deliveryMethodMaster/' + currentShop).once('value').then(snapshot => { 13 commit(types.SET_DELIVERY_METHOD_MASTER, snapshot.val()) 14 console.log(shopsData); 15 16 for (var shop_uid in shopsData) { 17 //shop info 18 return db.ref('/shops/' + shop_uid).once('value').then(snapshot => { 19 if (snapshot.val()) { 20 commit(types.SET_SHOP, { 21 shopData: snapshot.val(), 22 uid: shop_uid 23 }) 24 } 25 }) 26 } 27 }) 28 }) 29 }) 30 })
回答2件
あなたの回答
tips
プレビュー