firebase functionsをローカルでテスト
create: 2018-10-20
JavaScript Firebase firebase functions

前回:firebase functionsでサーバレスAPIの続き
firebase functionsでは、デプロイしなくてもローカル環境でテストが可能です(できないテストもあります)。
せっかくなのでオリジナルのプログラムを作って、ローカル環境で動作確認をしてみます。

おみくじAPIを作る

とりあえず動けばいいのでガバガバの仕様。

  • GETでAPIが呼ばれる
  • JSON形式で大吉〜大凶を返す
    これだけ。レアくじの出現率なんか気にしない。平等です。

おみくじFunctionを作成

const functions = require('firebase-functions');

// cors許可のためインポート
const cors = require('cors')({ origin: true });

const
	kuji = ["大吉", "中吉", "小吉", "吉", "末吉", "凶", "大凶"],
	len = kuji.length;

// 関数本体
exports.default = functions.https.onRequest((req, res) => {

	// ランダムで添字を取り出す
	const index = Math.floor(Math.random() * len);

	// 結果をJSONに載せる。cors許可のためラップ
	cors(req, res, () => {
		res.json({ result: kuji[index] });
	});
});

関数登録

// おみくじ
exports.omikuji = require('./etc/omikuji').default;

ローカルでサーバ起動

--only functionsオプションで、functionsのみserveできます。

firebase serve --only functions

結果の確認

curlコマンドから結果を確認。

curl http://localhost:5000/blog-cbb72/us-central1/omikuji
# {"result":"大吉"}

やったね!!