分からないこと、出来なくて困っていること
下記2点です。
- ステップ実行で関数(helloWorld)内に入れない原因
- 関数内をデバッグする方法
例えば、下記該当コードの7行目のexports.helloWorld...
と11行目のif文の中の(dataCreator.fileExistCheck())にブレイクポイントを貼りデバッグを実行、ステップオーバーすると、前者は止まりますが後者はスルーされてしまいます。
helloWorld内で何が起こっているか確認したいのですが、上述の挙動をするため困っております。
そもそもやろうとしていることと、問題発生の簡単な経緯
HTTPリクエストがきたら、レスポンスとして自身で生成したJsonを返すプログラムをFirebase Functionsで作成しようとしています。
デプロイしたところ期待した動きをしなかったので、ローカルでデバッグを試みました。
その結果、関数を定義している行には止まるものの、関数内にブレイクポイントをはってステップオーバーしても中に入ってくれません。
ご回答いただきたいこと
下記2点です。特に2番を知れると嬉しいです。
- ステップオーバーで関数内に入れない原因
- ステップオーバーで関数内に入れるようになる方法
また、
「そもそもステップオーバーを使う事自体が誤りで○○を使うべきである」、
「ステップオーバーの語義の認識自体に誤りがある」
などのご指摘・回答も歓迎しております。
試したこと
-
Cloud Functionsのエミュレータが必要だったので、
firebase-tools
をインストール -
こちらの記事を参考に
firebase emulators:start --inspect-functions --only functions
を実行し、デバッグコンソールでDebugger attached.
の表示を確認。 -
launch.json
に"outFiles": ["${workspaceRoot}/functions/**/*.js"]
の記入
環境
- VSCode
- macOS
- Node.js(TypeScriptではない)
該当コード
index.js
1 const functions = require('firebase-functions'); 2 const dataCreator = require('./src/dataCreator'); 3 4 // // Create and Deploy Your First Cloud Functions 5 // // https://firebase.google.com/docs/functions/write-firebase-functions 6 7 exports.helloWorld = functions.https.onRequest((request, response) => { 8 9 let createdJson; 10 11 if (dataCreator.fileExistCheck()) { 12 console.log('ファイル更新直前'); 13 14 dataCreator.writeJson(); 15 16 console.log('ファイル更新直後'); 17 18 // 生成されたJsonファイルを取得 19 createdJson = require('./src/data.json'); 20 console.log(createdJson); 21 22 23 } else { 24 console.log('ファイル存在チェックで異常があったので更新されませんでした。'); 25 } 26 27 28 // 一時的なデバッグ用変数 29 let hoge = { 30 'a': 'hoge' 31 }; 32 33 // レスポンスとして生成されたJsonを返す 34 response.send(createdJson); 35 });
補足
- Eclipseを用いたJavaのデバッグ経験はあります。
- 本質問はこちら と同一です。こちらで先に解決した場合は質問を締めさせていただきます。
以上です。
ご回答お待ちしております。
あなたの回答
tips
プレビュー