Cloud Functions for Firebase を使ってみる
Cloud Functions for Firebase は、Firebase の各サービスに対するトリガーや、HTTP リクエストに応じて、様々な処理を行わせることができるサービスです。
HTTP トリガーを使うことによって、Web API を公開することができます。
導入方法
まず、Firebase CLI をインストールしておく必要があります。
(以前紹介しました こちら の記事などを参考にして下さい。)
適当なフォルダを作成し、その中に移動します。
$ firebase init functions
使用するプロジェクトや使用言語などを返答します。
ここでの説明では、JavaScript を使用します。
コマンドが完了すると、complete と表示されます。
フォルダ内に functions というフォルダが出来ています。
その中に 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 emulators:start --only functions
起動が完了すると URL が表示されるので、ブラウザなどで開きます。
Hello from Firebase!
のように表示されたら成功です。
コンソールに Ctrl+C と入力すると、エミュレータを終了できます。
デプロイ
Firebase のサーバにデプロイしてみます。
以下のようにコマンドします。
$ firebase deploy --only functions
Firebase コンソールを開き、メニューから「Functions」を選択して下さい。
ダッシュボード に helloWorld という関数が登録されていれば成功です。
トリガーに書かれた URL を開くことで、動作をチェックできます。



GET パラメータの取得
先ほど作った helloWorld 関数に、パラメータを渡してみます。
スクリプトを以下のように書き換えます。
const functions = require('firebase-functions');
exports.helloWorld = functions.https.onRequest((request, response) =>
{
var json = {
"method": request.method,
"foo": request.query.foo
};
response.send(JSON.stringify(json));
});
URL の末尾を以下のようにしてアクセスします。
helloWorld?foo=bar
すると以下のように表示されます。
{"method":"GET","foo":"bar"}