Firebaseで非同期に値を取得したいです。
現在、以下のようなコードを書いていて、まず snapshot.size
でFirebase上の値をリッスンしてそれを取得できてから push
の部分で値をpushしたいです。
しかしこのままだと、db.collection ~
部分で値を取得する前に blogs.push
の処理に行ってしまい、likeCount
がundefinedになってしまいます。
js
1 querySnapshot.forEach(doc => { 2 db.collection('blogs').doc(doc.id).collection('likes').onSnapshot(snapshot => 3 snapshot.size 4 ) 5 6 blogs.push({ 7 id: doc.id, 8 created_at: new Date().getTime(), 9 likeCount: ooo // ここにsnapshot.sizeで取得した値を入れたい 10 })
足りない情報などあれば教えていただけると幸いです????♂️
ご教授お願いします????♂️
試したこと
以下のようにasync,awaitを加えてみましたがconsole上で[vuex] do not mutate vuex store state outside mutation handlers.
エラーが出てしまいました
querySnapshot.forEach(async (doc) => { await db.collection('blogs').doc(doc.id).collection('likes').onSnapshot(snapshot => snapshot.size ) blogs.push({ id: doc.id, created_at: new Date().getTime(), likeCount: ooo // ここにsnapshot.sizeで取得した値を入れたい })
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。