What's new in Firebase
32分 15秒
Firebase SQL Connectでアプリ開発を高速化!リアルタイム同期とカスタムリゾルバー活用術
この記事は動画の内容を元にAIが生成したものです。正確な情報は元の動画をご確認ください。
ポイント
- •Firebase SQL Connectは、Cloud SQLを基盤にアプリ開発を加速させる新機能満載のソリューションです。
- •リアルタイム同期でデータ更新を即座に反映し、カスタムリゾルバーでCloud SQL以外のデータも柔軟に統合可能です。
- •本記事を通じて、開発者は高応答性で柔軟なアプリケーションを効率的に構築する具体的な方法を学べます。
はじめに:Firebaseで開発をさらに加速する
Google I/O 2026では、開発者の皆様がこれまで以上に「容易に、速く、柔軟に」アプリケーションを構築・拡張できるよう支援することに注力しています。モバイルアプリからウェブサイトまで、人間もAIもコードを書く時代において、Firebaseはクライアント開発に必要なツールとサービスを提供し、Google Cloudの強力な機能をシームレスに利用できるようにします。
Firebaseは、FirestoreのようなNoSQLソリューションで知られていますが、実はCloud SQLを基盤としたSQLソリューションも提供しています。このブログ記事では、このSQLソリューションがどのように進化し、アプリ開発を次のレベルへと引き上げるのかを詳しくご紹介します。
Firebase SQL Connectの登場と主な新機能
昨年、FirebaseはCloud SQLを基盤としたSQLソリューション「Firebase Data Connect」を一般公開しました。そして今年、Data Connectはさらに進化し、「Firebase SQL Connect」として生まれ変わりました。
Firebase SQL Connectは、Data Connectが持っていた以下の優れた機能を引き継ぎ、さらに多くの新機能を提供します。
- サーバーレスでセキュアなCloud SQLアクセス:煩雑なインフラ管理なしに、安全にCloud SQLのデータを利用できます。
- 強力な自動生成SDK:開発効率を高めるためのSDKが自動で生成されます。
そして、SQL Connectに新たに追加された注目すべき機能は以下の通りです。
1. カスタムリゾルバー(Custom Resolvers)
カスタムリゾルバーを使用すると、Cloud SQL以外のデータソースもSQL Connectのデータソースとして拡張できるようになります。これにより、アプリケーションはこれらのデータソースのデータをクエリやミューテーションで活用できるようになります。例えば、Cloud SQLのデータとBigQueryのデータを組み合わせるといった高度な連携が可能になります。
2. オフラインキャッシュ(Offline Cache)
オフラインキャッシュ機能により、ネットワーク接続がない、または不安定な状況でも、アプリケーションは応答性を維持できます。これにより、ユーザーエクスペリエンスが大幅に向上します。
3. ネイティブSQLサポート(Native SQL Support)
これまで以上にSQLの表現力を最大限に活用し、クエリやミューテーションを直接記述できるようになりました。これにより、PostgreSQLの豊富な拡張機能(エクステンション)へのフルアクセスが可能になり、例えば地理空間情報処理を行うPostGISのような強力な機能も利用できます。
4. リアルタイム同期(Realtime Sync)
リレーショナルデータをリアルタイムなアプリケーション機能に変換できる、待望の機能です。これにより、データの変更が即座にアプリケーションに反映され、ユーザーは常に最新の情報を得られるようになります。
リアルタイム同期を実際に体験する
ここでは、エモジ取引所のデモアプリケーションを使って、Firebase SQL Connectのリアルタイム同期がどのように機能するかを見ていきましょう。このアプリでは、絵文字を売買でき、売買によって価格が変動します。左側に個人のプロフィール、右側に別のユーザーのプロフィールを表示し、2つの異なるユーザーとしてログインしています。
従来の更新方法と課題
デモの初期状態では、ツリーの絵文字を購入しても、画面上では何も起こりません。画面を更新して初めて、ツリーの価格が上がったことが表示されます。右側の画面でも同様に、手動で更新しない限り価格の変動は反映されません。これは、従来のクエリ実行方法では、データの変更がリアルタイムにフロントエンドにプッシュされないためです。
subscribe メソッドによるリアルタイム更新
この課題を解決するため、Firebase SQL Connectのリアルタイム機能を使います。従来、SQL Connectクエリを実行するには executeQuery メソッドを使用していました。しかし、新しく導入された subscribe メソッドを使うことで、クエリへのサブスクライブが可能になります。
subscribe メソッドでクエリを購読すると、そのクエリはサーバー側でキャッシュされます。そして、データが更新されるたびに(例えば、他のユーザーが絵文字を売買するたびに)、サーバーからフロントエンドにストリーム信号が送られ、データが自動的に更新されます。
デモでsubscribeメソッドに切り替えた後、ツリーの絵文字を購入すると、手動で画面を更新しなくても、両方の画面でリアルタイムに価格が更新される様子が確認できます。これはまるで魔法のようです。
refresh ディレクティブによる自動更新
さらに強力な機能として、refresh ディレクティブが導入されました。このディレクティブをクエリに付与することで、特定のミューテーション(例えば、絵文字の購入や売却)が発生するたびに、そのクエリが自動的にリフレッシュされるように設定できます。
refresh ディレクティブを getDashboardData クエリに追加し、デプロイメントプロセスを経て変更を反映させます。このプロセスでは、データベースのスキャン、クエリのコンパイル、スキーマの検証などが自動的に行われます。
デプロイ後、コーヒーの絵文字を購入すると、どちらの画面も手動更新なしで即座に価格が変動します。これにより、開発者はリアルタイム性の高いアプリケーションをより簡単に、かつ自動的に構築できるようになります。
ネイティブSQLサポートの活用:地理空間情報の表示
ネイティブSQLサポートにより、SQLの持つ表現力を最大限に引き出すことができます。デモでは、購入者の地理位置情報を地図上に表示する画面が紹介されました。これは、座標に基づいて絵文字を購入した人々を地図上にプロットする機能です。
この機能は、PostgreSQLのGIS(地理情報システム)拡張機能であるPostGISを使用することで、非常に簡単に実現できます。SQLクエリ内で直接、経度と緯度を渡して地理空間検索を実行できるため、複雑なロジックをアプリケーション側で実装する必要がありません。PostgreSQLエコシステムで利用可能なあらゆる拡張機能を使用できるようになったことで、その可能性は無限大に広がります。
カスタムリゾルバーでデータソースを拡張:Cloud SQLとBigQueryの連携
特定の絵文字に関するより複雑な指標を表示したい場合、例えば、SQLデータベースから取得したライブ価格だけでなく、事前に計算された(precomputed)指標も表示したいとします。このような事前に計算された指標の処理には、BigQueryのようなサービスが最適です。
ここでカスタムリゾルバーの出番です。カスタムリゾルバーを使えば、Cloud SQLのデータとBigQueryのデータを組み合わせることが可能になります。
カスタムリゾルバーを設定するために、Firebase init data connect resolver というメソッド(将来的には SQL connect resolver にリネームされる予定)を実行します。これにより、以下のものが生成されます。
- ベーススキーマ:カスタムリゾルバーの入力と出力のデータ形式を定義します。
- Cloud Functionのスタブ:BigQuery Cloud SDKを介してBigQueryを直接呼び出すCloud Functionのコードが生成されます。このCloud Functionは、Google Cloudのサービスだけでなく、サードパーティのAPIを含む、あらゆるAPIを呼び出すようにカスタマイズできます。
これにより、SQLデータとBigQueryデータを組み合わせたクエリ(例: getEmojiAnalytics)を作成し、絵文字をパラメータとしてカスタムリゾルバーに渡すことで、よりリッチなデータ分析と表示が可能になります。
まとめ
Firebase SQL Connectは、Cloud SQLを基盤としたFirebaseのSQLソリューションを大幅に進化させました。リアルタイム同期、カスタムリゾルバー、ネイティブSQLサポートといった新機能により、開発者はより高速で柔軟なアプリケーション開発が可能になります。特に、リレーショナルデータをリアルタイム機能に変換できる点や、様々なデータソースやPostgreSQLの豊富な拡張機能をシームレスに統合できる点は、これからのアプリ開発において強力な武器となるでしょう。