前提・実現したいこと
nuxt + firebase realtime databaseを利用して
dbのデータリアルタイムに更新しようとしています。
発生している問題・エラーメッセージ
- 画面を初期表示したときにデータが取得出来てない.
await ref.on
でawaitしてるので順次処理される想定だが、後で取得が動いてしまう。 - firebaseのdbを更新したら一応
ref.on()
は動くのだが、dataを更新する方法が分からない
該当のソースコード
vue
1export default { 2 data: () => ({ 3 meetings: [] 4 }), 5 async asyncData() { 6 var result 7 console.log("step1") 8 const ref = await firebase.database().ref('meetings') 9 await ref.on("value",async (data) => { 10 const value = await data.val() 11 console.log("get data") 12 console.log(value) 13 result = value 14 }) 15 16 console.log("step2") 17 console.log(result) 18 return {meetings: result} 19 } 20}
実行結果
step1 step2 parent undefined get data {~~~~data~~~~}
試したこと
ref.on の所をreturnしてみたが、得られる結果が関数っぽいものが返ってきます
result = await ref.on("value",async (data) => { const value = await data.val() console.log("get data") console.log(value) return value }) console.log(result)
実行結果
step1 step2 parent ƒ (_x) { return _ref.apply(this, arguments); } get data {~~~~data~~~~}
他にもsetter的なMethodを作りref.on()の中から呼ぼうとしたのですが、
undefined methodとなってしまい期待する結果とはなりませんでした。
あなたの回答
tips
プレビュー