🌟

Firebase update summary 2022

2022/12/12に公開

Google Cloud Japan Advent Calender 2022 (今から始める Google Cloud) の 10 日目です!
本日のテーマは Firebase です。実は今年3年目になりまして、毎年自分の頭の整理がてらFirebase のアップデート情報を振り返っています。

今年も大量にアップデートがあったため全てを紹介するのはあきらめて、個人的に興味深かったアップデート情報をまとめてみようと思います。

1. Firestore の細かいアップデートがすごくうれしい

コンソールが便利に!クエリビルダー&テーブルビューアがきたぞ

詳細はこちら
Managing Firestore with the console | Google Cloud

  • コンソールでクエリを UI でポチポチ構築できるようになりました
  • このコンソールからそのままクエリができるのでドキュメントを簡単にスキャン&比較できるようになりました

Firestore console

TTL が GA!

詳細はこちら
Manage data retention with TTL policies | Firestore | Google Cloud

Time-to-Live (TTL) ポリシーを使用して、古いデータをデータベースから自動的に削除できるようになりました。特定のドキュメントに有効期限を指定し、その期限を過ぎたデータは通常72時間以内に削除されます。使わないデータのお掃除に便利そうですね。

Firestore TTL

Aggregation クエリによる Count() が Public Preview

詳細はこちら
Counting documents with aggregation queries | Firestore | Google Cloud

count() を使用すると、 コレクションやクエリに含まれるドキュメントの件数を調べることができます。サーバーサイドでカウントを計算し、その結果だけをアプリに送り返すので、 クエリ全体を実行するよりもドキュメントの読み取り回数や転送量を節約できます。
これはつまり料金の節約にもなります。具体的に count() クエリでマッチした最大 1000 件のエントリごとに 1 Read として課金されるので、例えば1500件のエントリにマッチする count() 操作の場合、2 Read として課金されます。

例えば js から利用する場合、こんな感じで利用可能です。

const coll = collection(db, "cities");
const snapshot = await getCountFromServer(coll);
console.log('count: ', snapshot.data().count);

NoSQLで Count が利用できるのは地味にうれしいですね。

2. Firebase Extensions が充実

Extensions Marketplace が登場

詳細はこちら
https://extensions.dev/extensions

2020年に登場した Firebase Extensions ですが、今年も多くの機能が追加されました。今年はExtensions が増えてきたことに合わせて Marketplace でほしいものを探しやすくなりました。
Firebase Extensions はパッケージ化された機能で、インストールボタンを押すだけで指定したプロジェクトに環境を構築してくれます。例えば↓のようなことはインストールするだけで実装が完了してしまいます。

  • Firestoreにドキュメントが書かれたら、メールを送信する
  • ユーザーが Firebase Authentication から削除されたときに、ユーザー ID をキーとする特定のデータを自動的に削除する

Marketing / Messaging / Payments / Search / Shipping / Social / Utilities など
カテゴリも充実してきているためやりたいことの多くはこれをインストールするだけで解決できてしまうのではないでしょうか?
marketplace

3. Firebase Hosting

Next.js に対応したぞ!

詳細はこちら
Integrate web frameworks with Hosting

今までの Firebase Hosting も便利でしたが、スタティックなウェブサイトだけでなく Next.js や Angular Universal などの Web フレームワーク を簡単にデプロイできるようになりました。これに対応するために特別なことは必要なく、最新の Firebase CLI を利用すれば firebase deploy コマンドを打つだけでデプロイ可能です。CLI が自動でフレームワークを検出し、ビルドを行います。必要に応じて Cloud Functions を生成し、必要な構成をセットアップしてデプロイしてくれます。また、Vite、Preact、Lit、Svelte などのクライアントビルドもサポートしました。

4. Cloud Functions 第二世代 !?

Cloud Functions v2がきた!なにが違うの?

詳細はこちら
Cloud Functions (2nd gen) public preview

Cloud Functions for Firebase (第 2 世代) は Cloud Runと Eventarc がベースとなります。より強力なインフラストラクチャ、パフォーマンスとスケーラビリティの高度な制御、関数ランタイムのより詳細な制御ができるようになっています。具体的になにができるかというと

  • 1インスタンスで複数のリクエストを処理できるようになりました
  • タイムアウト時間が9分から1時間に伸びました
  • Firebase Alerts トリガー、 Firebase Extensions のカスタム イベント トリガーなど今までより実行トリガーが増えました

地味に聞こえますが結構使い勝手がよくなってます。

5. Firebase Authentication

詳細はこちら
Firebase Authentication with Identity Platform

Google Cloud Identity Platformと連携することにより Multi-Factor Authentication (MFA) の利用や Cloud Functions によるサインアップのカスタマイズ、 OpenID Connect、SAML連携 など様々な機能が追加されました。

Firebase 全般

Google Cloud、 Firebase の ISMAP 登録を完了

詳細はこちら
Google Cloud、 Firebase の ISMAP 登録を完了

中央省庁、地方自治体、政府関連機関を含む公共部門のお客様には、さらに安心して弊社のサービスをご利用いただけるようになりました。
ISMAP に登録されたことでより安心して利用できますね。

まとめ

今年もたくさんのアップデートがありました。こうやってまとめてみると時間のかかるタスクを簡単にするようなアップデートがいっぱいある印象でした。個人的にはできるだけ楽に実装をしたい性格なので、特に Firestore の TTL や count() 関数 や Extensions はほんとにお気に入りです。また来年のアップデートも楽しみですね!

参考資料

Google Cloud Japan

Discussion