1からFirebaseエミュレータを導入した時に詰まった落とし穴。
基本はGoogleさんの下記の手順でやれば良かったが、新しいMACなどで特に開発環境を整えていないケースでハマっちゃったポイントがあったので備忘録。
前提
- 既にFireBaseプロジェクトは作成済みで、新しくCloudFunctionsの開発及びデプロイ環境を揃えようとした
- npmとnodeは最新が入っていた
##1.npmのアクセス権で引っかかる
初っ端から。これに関してはgoogleさんからもお達し済。
npm install -g firebase-tools
これにより、グローバルに使用できる firebase コマンドがインストールされます。コマンドが失敗した場合は、npm アクセス権の変更が必要になる場合があります。firebase-tools を最新バージョンに更新するには、同じコマンドを再実行します。
npm ERR! code EACCES
npm ERR! syscall access
npm ERR! path /usr/local/lib/node_modules
npm ERR! errno -13
npm ERR! Error: EACCES: permission denied, access '/usr/local/lib/node_modules'
npm ERR! [Error: EACCES: permission denied, access '/usr/local/lib/node_modules'] {
npm ERR! errno: -13,
npm ERR! code: 'EACCES',
npm ERR! syscall: 'access',
npm ERR! path: '/usr/local/lib/node_modules'
npm ERR! }
npm ERR!
npm ERR! The operation was rejected by your operating system.
npm ERR! It is likely you do not have the permissions to access this file as the current user
npm ERR!
npm ERR! If you believe this might be a permissions issue, please double-check the
npm ERR! permissions of the file and its containing directories, or try running
npm ERR! the command again as root/Administrator.
下記の手順にて解決
## 2.JAVAが入ってなかった
firebase emulators:start
で何故かFirebaseエミュレーターが起動しない・・・!
エラーもそれらしいのが出ていなかったがJAVAのインストールで起動しました。これ実は書いてないかも?
## 3.functionsのデプロイができない!
エミュレーターも動き、一通りの動作を見終わっていざデプロイ。ここでもエラー発生。
設定時にESLintというJavaScript検証ツールを有効にしているとここでエラーになっちゃうらしく、それが記載されているfunctionsのpredeployを消す必要があるようでした。