Cloud Functions for Firebaseを試してみた
概要
Cloud Fucntions for Firebase
を試してみました。
環境はWindows 10 Pro 64bit
のWSL
上にて実行。
実行メモ
一応チュートリアル通りに進めていきます。
firebase.google.com
まずはFirebaseコンソール上でプロジェクトを予め作成しておきます。
この辺りは先人の方たちに語り尽くされているので割愛。
まずはfunctionsの初期化コマンドを打ちます。
firebase init functions
このディレクトリをプロジェクト(firebaseの)に紐づけるためのオプションを指定してください
とのことなので、とりあえずUse an existing Project.
を選択。
Firebaseに作ってあるプロジェクトを指定します。
次はJavaScriptとTypeScriptどっちを使うかと聞かれました。
今回はこちらにも書いたように、TypeScriptのオライリー本を購入したので
TypeScriptを選択してみます。
オライリー本届いた pic.twitter.com/7gHm4Ax7gZ
— John Daikichi🦍 (@dev_daikichi) March 16, 2020
次はTSLint(JSを選択していたらJSLint)を使うか?
と聞かれるので、Y
。
次はnpmの依存パッケージを今すぐダウンロードします?と聞かれるので、Y
。
しばらくするとfunctions
ディレクトリに色々とファイルが作成されます。
後はチュートリアルの6. addMessage() をデプロイして実行する
の通りに関数を追加
firebase deploy --only functions
を使ってデプロイ。
余談ですが、ここでデプロイする関数を絞ることもできるようです。
が、余りデプロイ速度は変わらないみたいです。。。
また、プロジェクトのルートディレクトリで上記コマンドを実行したのに、どうやって
デプロイ対象のディレクトリを指定してるんだろう・・・
と思ってたんですが、ここに書いてましたね。
デフォルトでは、Firebase CLI によって functions/ フォルダ内でソースコードが検索されます。
別のフォルダを指定するには、firebase.json に次の行を...
大体予想してましたが、デフォルトではfunctions/
配下が選択されるんですね。
で、別ディレクトリを参照させるならfirebase.json
に指定すると。
すっきりしました。
デプロイが完了したら、Function URL (addMessage): https://us-central1-Y_PROJECT.cloudfunctions.net/addMessage
のように出力されるので、ブラウザにクエリパラメータを付加した上記URLを入力してアクセス。
すると、データベースにクエリパラメータで指定した文字列が登録・・・
されませんでした。
というのも、この時私はChromeで2つのGoogleアカウントでログインしており
開発用アカウントではなくメインアカウントの方で叩いてしまったので
URLを叩いたあとのFirebaseコンソールページへのリダイレクトで、アクセス制限に引っかかっているようでした。
つまり、登録はできているけど登録を確認する為のリダイレクト処理でうまくいってなかっただけ、みたいです。
新たにシークレットタブを開き、開発用アカウントでログインし、実行すると・・・
登録されましたね。
終わりに
今回はチュートリアルに従って、Cloud Fucntionsを使ってみました。
Firebaseはドキュメントも充実しているし、簡単な操作でデプロイできるのでいいですね。
次は画像アップロード用の関数でも作ろうかなぁと思っています。
現場からは以上です。