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
プロジェクトの初期化
- 実行:
bash firebase init functions - 言語として Dart を選択します。
- 「Do you want to install dependencies now?」と尋ねられたら、「Yes」と答えます。
関数コードを表示する
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 関数とは異なります。Cloud Build でビルドするソースコードをアップロードする代わりに、Firebase CLI は開発マシンで 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 関数は表示されません。Dart 関数は、Cloud コンソールの Cloud Run 関数ページで確認できます。
Dart 関数を使用しているときに問題が見つかった場合は、チームにレポートを送信して、試験運用版の Dart SDK の改善と拡張にご協力ください。