Cloud Functions for Firebase の試験運用版 Dart サポートにより、Flutter と Dart を使用してフルスタック アプリを構築できます。新しい Firebase Admin Dart SDK を使用して他の Firebase サービスと通信する。
Dart 関数を使い始めるには、このガイドの設定タスクを完了してから、Dart HTTP 関数と呼び出し可能関数の詳細を確認してください。
前提条件
- Dart SDK 3.9 以降
- Firebase CLI(バージョン 15.15.0 以降)
--version フラグを使用して、Cloud Functions for Firebase で Dart をサポートする Firebase CLI のバージョンがインストールされていることを確認します。
`firebase --version`
Firebase CLI でテストを有効にする
firebase experiments:enable dartfunctions
プロジェクトの初期化
次のコマンドを実行します。
firebase init functions言語として Dart を選択します。
「依存関係を今すぐインストールしますか?」と尋ねられたら、「はい」と答えます。
関数コードを表示する
functions/bin/server.dart(またはエントリ ポイント)で生成されたコードを確認します。このコードは、シンプルな HTTP 関数を示しています。
サンプルコードでは、HttpsOptions コンストラクタを使用して、helloWorld 関数の最大インスタンス数を 10 に設定しています。ランタイム オプションの詳細については、ランタイム オプションを設定するをご覧ください。
ローカルでテストする
firebase emulators:start
Local Emulator Suite が起動すると、functions http function initialized
(http://127.0.0.1:5001/<url>) のようなログ行が表示されます。その URL をブラウザで読み込み、ローカルでエミュレートされた Dart 関数を呼び出します。
Dart コードを編集すると、Firebase Local Emulator Suite が変更を検出して関数を自動的に再読み込みします。
デプロイ
firebase deploy --only functions
Dart のデプロイ プロセスは、Node.js 関数や Python 関数とは異なります。Firebase CLI は、Cloud Build でビルドするソースコードをアップロードする代わりに、開発マシンで Dart コンパイル ステップを実行し、生成されたバイナリを Cloud Run 関数に直接アップロードします。
デプロイが完了すると、Function URL
(hello-world(us-central1)): https://hello-world-<random-hash>.<region>.run.app のようなログ行が表示されます。
ブラウザでその URL を読み込み、新しくデプロイした Dart 関数を呼び出します。
次のステップ
- 最小インスタンス数などの構成オプションを設定します。
- HTTP 関数と呼び出し可能関数の詳細を確認する。
- Dart Functions の Codelab Dart Functions の Codelab に沿って進めます。
- 試験運用版の Dart Admin SDK を使用して、関数から Cloud Firestore などの他の Firebase サービスを操作する
onRequestHTTP 関数に加えて、onCallサンプルまたはストリーミングを使用したonCallサンプルを試して、アプリから直接関数を呼び出すことができます(呼び出し方法に関する特別な制限に注意してください)。
制限事項
onCallトリガーはデプロイできますが、httpsCallable などのメソッドを使用してクライアント SDK から呼び出すことはできません。これらのメソッドは、名前で関数を識別します。代わりに、httpsCallableFromURL などのメソッドを使用して、関数の完全な Cloud Run URL を渡すことができます。- Firestore トリガーなどの他のトリガーは、ローカル エミュレータ スイートで実行できますが、デプロイできません。
- Firebase コンソールには、試験運用版のリリース中に Dart 関数は表示されません。代わりに、Cloud コンソールの Cloud Run 関数ページで Dart 関数を表示できます。
Dart 関数を使用する際に問題が発生した場合は、チームにレポートを送信して、試験運用版の Dart SDK の改善と拡張にご協力ください。