プログラミング学習

firebase Cloud Functionsのdeployなど使い方(error対策/node.js express併用)

プログラミング学習

firebase Cloud Functionsやnode.jsのexpressエラー対策の記事です。

使い方はこちらの記事をみてください。

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の動画などはこちらの記事で紹介しています。

【udemyで大人買い】vue.js/vuetify/nuxt/firebaseのおすすめ入門本/動画

javascrptやexpressなどはこちらの記事です。

【評判】Udemyのプログラミングおすすめ/フロントエンド/バックエンドエンジニア(Javascript他)

ご参考になれば幸いです。

コメント

タイトルとURLをコピーしました