cloud functions for firebase のローカル環境を作る

  • Google Cloud Platform

あらかじめ、ウェブ上の firebase コンソールからプロジェクトを作ってるとします。

Firebase CLI 設定と接続

ローカルのグローバル領域にインストール

npm install -g firebase-tools

Firebase ログイン

firebase login

初期化

プロジェクトのディレクトリへ移動してから init する

cd プロジェクトのディレクトリ
firebase init functions

Please select an option

? Please select an option:
> Use an existing project
  Create a new project
  Add Firebase to an existing Google Cloud Platform project 
  Don't set up a default project

今回は firebase のプロジェクトをウェブ上で作成していたので Use an existing project を選択。選択すると

? Select a default Firebase project for this directory: (Use arrow keys)

プロジェクトの一覧が出てくるので選ぶ

What language would you like to use to write Cloud Functions?

? What language would you like to use to write Cloud Functions? (Use arrow keys)
> JavaScript
  TypeScript

Typescript を使うかどうか。そんなに大きいものじゃないなら Javascript でもよいと思います。

Do you want to use ESLint to catch probable bugs and enforce style?

有効にするとエラーなどを事前に教えてくれます。任意で。

Do you want to install dependencies with npm now? (Y/n)

依存ライブラリをインストールするかどうか。なんとなく yarn で入れたかったので no にしましたが、こちらも任意で。

Firebase initialization complete! が出れば終わりです。

依存関係のダウンロード

先ほど最後の質問を no にしたので自分で入れます。functions/ディレクトリに package.json があるので、移動してから実行します。

cd functions/
yarn

エラー

yarn 実行時に下記のエラーが発生

terror functions@: The engine "node" is incompatible with this module. Expected version "10". Got "12.18.3"
error Found incompatible module.

cloud functions で使おうとしている node のバージョンが 10 なのに、12.18.3 になってるよと言われました。

functions/package.jsonenginesに node のバージョンが書かれています。自分の環境の node のバージョンを下げても良いですが、(2020/9現在)12 がベータ版で使えるらしいので、変更しました。

  "engines": {
-    "node": "10"
+    "node": "12"   
  },

これで改めてyarnを実行、無事終わりました。