個人開発におすすめな Firebase Extensions

Rnrn
google-cloud-jp
Published in
Dec 8, 2021

こんにちは、Cloud Support の Rnrn です。はやいものでもう Google Cloud Japan Advent Calendar も 9 日目ですね!今日はやりたいことがほぼワンクリックで実現できちゃう Firebase Extensions の紹介をしたいと思います☃

概要

Firebase は個人開発でもよく使われますが、個人開発ってやりたいことがたくさんありすぎて取捨選択が大変ですよね。そんな時、もしかしたら Firebase Extensions で一部の Todo をちゃちゃっと済ませることができるかもしれません。

Firebase Extensions は目的別に様々なパッケージを用意しています。例えば「ユーザーがアカウントを削除したときに Firestore、Realtime Database、Cloud Storage の userId をキーとするデータを削除する」とか、「Stripeの支払い情報を同期して有料コンテンツへのアクセスを制御する」など。自分のやりたいことにマッチしたものがあれば、インストールしてすぐに使い始めることが出来ます。今の時点ではインストールと言われてもピンと来ないかと思いますが、このあと詳しく紹介するのでご安心ください🐣

1 つ注意事項として、2021 年 11 月現在 Firebase Extensions はベータリリースであるため、SLA などはなく、突然の仕様変更などがあり得ます。利用いただく際はリンク先の公式ドキュメントから改めてステータスや制限を確認いただくことをおすすめします。

実体

簡単に使えそうなことはわかったけど、結局 Firebase Extensions の中身は何なのでしょうか。中核をなすのは Cloud Functions for Firebase です。Extension のロジックは Cloud Functions のコードで実装されます。拡張を使うと必要な API の有効化、サービスアカウントの作成やコードの準備・デプロイを自動で行ってくれるので、その一連の動作をインストールと呼んでいます。より詳しい仕組みについては公式ドキュメントに説明があるのでぜひ読んでみてください

作成される Cloud Functions の具体的な振る舞いは拡張機能の詳細ページから確認できます。例えば「Firestore に文章を書き込むと Translation API を使って対応する翻訳を作成する」パッケージを例にすると、詳細ページの以下の記述から、Firestore の書き込みをトリガーとした Function が作成され、書き込みがあるとその内容を翻訳して Firestore のドキュメントに書き込むことがわかります。

作成されるリソースはFirestoreの書き込みをリッスンして翻訳した内容を同じドキュメントに書き戻すCloud Functionです

詳細ページでは、他にも詳しい挙動や拡張機能の作成者、どのプロダクトが使われていて課金が発生するかなどの情報を確認することができます。例えばこの Extension の場合、作成したリソース自体にかかる費用と、Cloud Functions・Cloud Firestore・Translation API の無料枠を超えた分の利用料が請求されます。また、インストールする段階で従量課金制の Blaze Plan への登録が必要です。

ちなみに、拡張機能により作成されたリソースも基本的には自分で作成したリソースと変わりはないため、例えばクラウドコンソールから中身のコードを見ることも可能です。また、拡張機能により作成されたリソースは名前で見分けることができます

始め方

それでは、実際にどうやって使うのか確認してみます。同じ拡張機能の詳細ページから「コンソールからインストールする」ボタンをクリックして先に進みます。ページ下部に案内があるように、コマンドラインからも同等の操作が可能です。

そうすると、4 つのステップが表示されます。1 ~ 3 では支払い情報や有効化される API の内容などの確認があるので表示される内容をしっかり確認して次に進んでください。殆どの場合、最後のステップでリソースが動作するのに必要な変数などの設定をします。今回は翻訳先の言語や翻訳元の入力のフィールド名などが変更可能ですが一旦デフォルトのまま進めます。

翻訳先の言語やFunctionのロケーションを設定する画面

設定を終了してインストールボタンを押すと実際の処理が始まります。記載の通り数分かかるのでおやつでもつまんで待ちましょう🍫

完了したら、早速「始める」ボタンをクリックしてみます。

表示されたインストール済拡張機能の詳細ページに Extension のテスト方法がのっているので、指示通りテストしてみましょう。

Firestore のページから translationsというコレクションを作成します。最初のドキュメントには自動 ID を割り振ってinputというフィールドにだんだん寒くなってきました。という String を追加します。

保存して数秒待つと、Firestore のページが更新され、ドキュメントに新しくtranslatedフィールドが増えて、設定した言語の翻訳が追加されていることがわかります。

これで無事拡張機能のインストールが完了して、想定通り動くことが確認できました🎉

まとめ

このように、Firebase Extensions を使うと Firebase プロダクトを使ったちょっとしたロジックを簡単にセットアップすることができます。私自身 Extension の一覧を見て「これ知っていたらあの時使えたかも」と思うようなものがいくつかあって面白かったので、よかったらぜひ一覧だけでものぞいてみてください。それでは、明日の記事もお楽しみに🎄

--

--

Rnrn
google-cloud-jp

Technical Solutions Engineer for Cloud Support