firebase Cloud Functionsやnode.jsのexpressエラー対策の記事です。
使い方はこちらの記事をみてください。
目次
- 1 firebase Cloud Functionsのエラー
- 1.1 Deploy complete!するけど「最初のデプロイを待機しています」に戻る
- 1.2 functions: Upload Error: HTTP Error: 403, Unknown Error
- 1.3 Cannot GET
- 1.4 Warning, FIREBASE_CONFIG and GCLOUD_PROJECT environment variables are missing. Initializing firebase-admin will fail
- 1.5 Billing account for project ” is not found. Billing must be enabled for activation of service(s)
- 1.6 Error: could not handle the request
- 2 Cloud Functionsではなくeslintのエラー!?
- 3 npm
- 4 cloud functionの学習
firebase Cloud Functionsのエラー
Deploy complete!するけど「最初のデプロイを待機しています」に戻る
エラーはでないのですが、、
以前、開発を進めていると、Deploy complete!しているんだけど、「最初のデプロイを待機しています」に戻ってしまったことがありました。
index.js以下に下記のコードがなかったからです。他の場所に移動したらこうなりました。
const functions = require('firebase-functions'); // Create and Deploy Your First Cloud Functions // https://firebase.google.com/docs/functions/write-firebase-functions exports.helloWorld = functions.https.onRequest((request, response) => { response.send("Hello from Firebase!"); })
functions: Upload Error: HTTP Error: 403, Unknown Error
デプロイ時にでるエラーです。
functions: Upload Error: HTTP Error: 403, Unknown Error
firebase logout firebase login
再ログインで解決しました。以上でデプロイができました。
Cannot GET
expressを利用した場合、firebaseからアドレスにアクセスしたとき、次のようなエラーがでることがあります。
Cannot GET
res.sendはこう。
res.send('Hello Express!')
しかし、ためしにurlを/のみにすると、hello expressなどの文字が表示できるはずです。
app.get('/users', (req, res) => { const users = [ { id: 1, name: 'りんごくん' }, { id: 2, name: 'みかんちゃん' }, { id: 3, name: 'ぶどう男' } ] res.send(JSON.stringify(users)) }
usersをsendするなら、末尾に/usersをつけます。
Warning, FIREBASE_CONFIG and GCLOUD_PROJECT environment variables are missing. Initializing firebase-admin will fail
Warning, FIREBASE_CONFIG and GCLOUD_PROJECT environment variables are missing. Initializing firebase-admin will fail
firebase-functionsを読み込んでいるのに初期化の設定を書き忘れていたり。
Billing account for project ” is not found. Billing must be enabled for activation of service(s)
Cloud Functionsを使っていると、でるエラーの定番。
Error: HTTP Error: 400, Billing account for project '' is not found. Billing must be enabled for activation of service(s) 'cloudbuild.googleapis.com,containerregistry.googleapis.com' to proceed.
有料プランにしていないか、うっかりプロジェクトが無料のものになっている。(例、開発は有料プランだけど、リリースは無料プランだった。firebase useで切り替えが必要)。
Blazeプランの登録方法はこちら!
なお、このエラーの解決方法を見ると、nodeを8にしようとQiitaやstackoverflowに書かれているが、すでに非推奨になっているためその逃げ方はよくない。
Error: could not handle the request
ブラウザに
Error: could not handle the request
firebase管理画面のFunctionsのログにエラーがでているはずなので、そのエラーを片っ端から潰すべし。
Cloud Functionsではなくeslintのエラー!?
“Error: functions predeploy error: Command terminated with non-zero exit code2”
"Error: functions predeploy error: Command terminated with non-zero exit code2"
firebase initでCloud Functionsのeslintをいったんはずしました。そしたらcode1のエラーがでるようになりました。
“Error: functions predeploy error: Command terminated with non-zero exit code1”
"Error: functions predeploy error: Command terminated with non-zero exit code1"
eslintが悪さしているらしいです。インストール時にeslintを入れるとこうなるっぽいです。。
無効にしましょう。下記を削除すればOKです。
"predeploy": [ "npm --prefix \"$RESOURCE_DIR\" run lint" ],
npm
The following functions are found in your project but do not exist in your local source code: helloWorld Would you like to proceed with deletion? Selecting no will continue the rest of the deployments. (y/N) y
2回目に別関数を作るとデプロイ時に次のような問答がでます。前に作ったものを消していいのか否かのようです。
The following functions are found in your project but do not exist in your local source code: helloWorld Would you like to proceed with deletion? Selecting no will continue the rest of the deployments. (y/N)
cloud functionの学習
cloud functionの動画などはこちらの記事で紹介しています。
javascrptやexpressなどはこちらの記事です。
ご参考になれば幸いです。
コメント