実現したいこと
FireStoreのデータベースに保存した値を取得するコードを書いています。
該当のソースコード
JavaScript
1const value=''; 2 (async () => { 3 try { 4 const Ref = db.collection('class_info/h26/data').doc('members') 5 const Doc = await Ref.get() // firebase.firestore.DocumentSnapshot取得 6 if (Doc.exists) { 7 const value = (Doc.data()['1']) 8 } 9 await db.app.delete() 10 } catch (err) { 11 console.log('error') 12 } 13})() 14 console.log(value)
発生している問題・エラーメッセージ
最初に空の変数valueを作成しておいて、そこにFireStoreから取得したデータをvalueに代入したつもりでした。しかし、最終行のconsole.log(value)で取得したデータが表示されるかと思いきや、最終行のconsole.log(value)が非同期処理の中身より先に実行されてしまい、取得ができません。ちなみに、コレクションやドキュメントへの参照先アドレスは間違っていません。
試したこと
Promise関数での方法に切り替えようかと色々調べて実行しましたが、そちらもデータを参照したところundefinedが返ってきたため断念しました。(ネットで調べたもののこちらはさらによくわからず…)
質問者について
初心者で、非同期関数についてしっかりとできていない部分がありますので、改善をしようにも方法が分かりません。
具体的な改善例を挙げていただければ、理解も深まって解決できるかと思いますので、恐縮ですがご回答よろしくお願いします。
あなたの回答
tips
プレビュー