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

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

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

前提条件

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

 `firebase --version`

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

firebase experiments:enable dartfunctions

プロジェクトの初期化

  1. 次のコマンドを実行します。

    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 functions に直接アップロードします。

デプロイが完了すると、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 関数は表示されません。代わりに、 Cloud Run コンソールの Cloud functions ページで Dart 関数を表示できます。

Dart 関数を使用しているときに問題が発生した場合は、試験運用版の Dart SDK の改善と拡張に役立てるため、チームに レポートを送信する ことをおすすめします。