【Firebase】Cloud FunctionsでHello world


本稿では、Cloud Functions for Firebaseを利用してHello worldを返すエンドポイントを実装します。
基本的には公式のチュートリアルに従います。

環境

  • GCPプロジェクトを作成済み
  • Node v10.19.0

Firebase CLIのインストール

$ npm install firebase-functions@latest firebase-admin@latest --save
$ npm install -g firebase-tools

Firebase SDK for Cloud Functionsの初期化

Firebaseツールを認証する。

$ firebase login

Firebaseプロジェクトルートに移動し、空のプロジェクトを作成する。

$ firebase init functions

Firebaseが紐づくGCPプロジェクトを決める方法を選択する。
今回は既にGCPが存在する想定のため、Use an existing projectを選択する。

? 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のプロジェクトを選択する。

? Select a default Firebase project for this directory: 
❯ hogehoge (hogehoge) 
  fugafuga (fugafuga) 

言語をJSかTSから選択できる。今回はJSを選択する。

? What language would you like to use to write Cloud Functions? 
❯ JavaScript 
  TypeScript 

ESLint使うか選択する。

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

依存関係をインストールするか選択する。

?  Do you want to install dependencies with npm now?
Y

全ての質問に答え終わると、空のプロジェクトができます。

Hello world

セットアップを終えると、package.jsonindex.jsが作成されていると思います。

package.jsonのenginesを8から10に書き換えます。
(今回はHello worldだけなので、デフォルトの8でも大丈夫です。)

  "engines": {
    "node": "10"
  }

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!");
});

デプロイする。

$ firebase deploy --only functions

GCPコンソールから詳細を確認することができます。

https://us-central1-hogehoge.cloudfunctions.net/helloWorld にアクセスすると...
(hogehogeはGCPのプロジェクトID)