Open5
DartでCloud Functions for Firebaseを書く調査
Firebase FunctionsをDartで書きたい。一番のモチベーションはFlutterのプロジェクトで利用しているmodelを共通で利用したいという点。Flutter側で複雑なmodelを使っている場合にfunctionsでそれをJSで書き直してメンテするのは結構負荷が高め。
とりあえず調べるとntaooさんのmediumが出てくる。というかこれくらいしかちゃんとした記事がない。
これを読むとひとまずfirebase_functions_interopを使えば良いことがわかる。
ntaooさんのサンプルリポジトリも参考になりそう
ここでこのコマンドを試そうとするとビルドで失敗することがわかる。
pub run build_runner build --output=build
エラーとしては主にnull safety対応がされていないことによるエラーである。
Error: Cannot run with sound null safety, because the following dependencies
don't support null safety:
- package:firebase_functions_interop
......
このパッケージはfirebase_functions_interopは2020/5からメンテされていないのが影響してるのかも。
今後null safety対応する気配もないし、かといって自分で全部対応して新しいパッケージを作るのも気力がかなり要る。となると黙ってJSで書いていくしかないのか...
普通にCloud Functionsを動かすのであれば公式のGoogleCloudPlatform/functions-framework-dartを使うと書ける。
良い感じのTutorial動画もあった。
FirestoreやAuthenticationのイベントトリガーとかを使いたいからFirebase Functionsを使ってるけど、単純にHTTPエンドポイントのサーバーが欲しいならこれで良いかもしれない。