試験運用版の Dart SDK を使ってみる

Cloud Functions for Firebase の試験運用版の Dart サポートにより、Flutter と Dart を使用してフルスタック アプリを構築できます。新しい Firebase Admin Dart SDK を使用して、他の Firebase サービスと通信します。

Dart 関数を始めるには、このガイドの設定タスクを完了してから、Dart HTTP 関数と呼び出し可能関数について学習してください。

前提条件

--version フラグを使用して、Cloud Functions for Firebase で Dart をサポートする Firebase CLI のバージョンがあることを確認します。

 `firebase --version`

Firebase CLI で試験運用版を有効にする

firebase experiments:enable dartfunctions

プロジェクトの初期化

  1. 実行: bash firebase init functions
  2. 言語として Dart を選択します。
  3. 「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 関数を呼び出します。

次のステップ

制限事項

  • onCall トリガーはデプロイできますが、名前で関数を識別する httpsCallable などのメソッドを使用してクライアント SDK から呼び出すことはできません。代わりに、httpsCallableFromURL などのメソッドを使用して、関数の完全な Cloud Run URL を渡すことができます。
  • Firestore トリガーなどの他のトリガーは、ローカル エミュレータ スイートで実行できますが、デプロイすることはできません。
  • Firebase コンソールには、試験運用版のリリース中に Dart 関数は表示されません。Dart 関数は、Cloud コンソールCloud Run 関数ページで確認できます。

Dart 関数を使用しているときに問題が見つかった場合は、チームにレポートを送信して、試験運用版の Dart SDK の改善と拡張にご協力ください。