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":"大吉"}
やったね!!