こんにちは。
株式会社エス・スリーのスタッフです。
最近、Firebase Functionsを第1世代から第2世代へ移行する作業を進めています。Firestoreが主流になった今、Realtime Databaseはあまり使われないかもしれませんが、私のプロジェクトでは一部の機能にまだ依存しており、そこも含めて移行対象にしていました。
その中で、もともと第1世代で使っていたonCreateを第2世代へ移行しようとしていた時。ほかの関数と同様、東京リージョン(asia-northeast1)で指定してデプロイ。
ところが、ここで思わぬエラー。
The request was invalid: generic::invalid_argument: cannot create a trigger in region asia-northeast1 (not yet revealed)
調べてみると、onValueWritten は東京リージョンではまだサポートされていないとのこと。
公式情報などは見つからないのですが、どなたがご存じでしたらコメントで教えてください。
第2世代に移行すればいいだけだろう、と思い込んでいた私にとって、これは盲点でした。
結局、onCreate関数は第1世代のまま運用することとしましたが、移行作業の最中にこうした制約があると、思わぬ手戻りが発生します。
この経験から言えるのは、「新しい構文や便利な関数も、リージョンによっては使えないことがある」ということ。
特に日本の開発者にとっては、東京リージョンでのサポート状況を事前にチェックする習慣が大切です。
第2世代への移行は確かにメリットも多いですが、細かい罠も潜んでいます。先に移行した誰かのつまずきをシェアしておくことも、次の誰かの助けになるかもしれません。
最後までご覧いただき、ありがとうございました。