Firebase
FirebaseCloudFunctions

Firebase Cloud Functionsの定期実行が、それ単体で簡単にできるようになった!

以前、Firebase Functionsを定期実行するには、Googleの他のクラウドサービスや外部サービスと連携する必要がありました。

さて、


  • firebase-functions NodeJS モジュールバージョン : 2.3.0

  • Firebase CLIバージョン : 6.7.0

を使うことで、Firebase Functions中の設定・実装のみで、Firebase Functionsの定期実行が行えるようになりました。(これらは、2019年4月時点では利用可能です。)


以下に、公式ドキュメントを参考に試したこと、確認した事項をまとめます。最新のドキュメントを確認してください。


  • 従量課金プランである「Blaze Plan」が必要

  • 内部的には、Google Cloud Pub/SubGoogle Cloud Schedulerを利用

  • そのためFirebaseプロジェクトが↑の機能が有効である必要がある


  • Google Cloud Scheduler2018年11月に正式リリースされた新しいサービス


  • Google Cloud Pub/SubとFirebase Functionsの連携は以前からサポートしていた。

  • デプロイすると自動的に↓ができる。これらはGoogle Cloud Consoleから確認できる。


    • Google Cloud Scheduler

    • Google Cloud Pub/Sub



  • 「Unix Crontab」と「AppEngine cron.yaml syntax」という形式で定期実行のタイミングを指定。(AppEngine cron.yaml syntaxはこちらを参照)

  • 該当のFirebase Functionsの関数を消すと、それと連動するCloud SchedulerとCloud Pub/Subも消えた(投稿者が記事執筆時に確認した挙動)


この機能追加、非常に嬉しく思います。

以前もGoogleの他のクラウドサービスや外部サービスと連携することで、Firebase Functionsの定期実行は可能でした。可能ではありましたが、Firebase Functions以外にも把握・実装・管理することが増え、面倒でした。(私もGoogle Cloud Pub/Subなど慣れていないクラウドサービス使い、四苦八苦しながらFirebase Functionsの定期実行を実装した覚えがあります。)

この機能追加により、ゲーム開発者/モバイル開発者/ウェブフロント開発者にとって、(表向きはとりあえず)Firebase Functionsを利用するだけで、定期実行処理が利用できるようになりました。(内部的には、Google Cloud SchedulerとGoogle Cloud Pub/Subを使っているので、把握していた方がベターではありますが。)

趣味開発や少人数でのプロトタイプ開発に、心強い味方になるのではないでしょうか?