Firebase Cloud Functionsとは?
Firebase Cloud Functionsは、HTTPS リクエストやFirebaseのDBの更新など、設定したトリガーでバックエンド処理を自動的に実行する機能です。
様々なトリガーが用意されており、Firebaseの他の機能との連携が取りやすく、また、GCPで管理されているため、独自のサーバーを管理およびスケーリングする必要はありません。
料金についても無料枠が大きく設定されており、呼び出しだけでも最初の200万回/月無料(コンピューティング時間にも無料枠設定あり)とサービス開始時のサーバー費用の負担を減らすことが可能です。
事前準備
Firebase Cloud Functionsで定期実行を行うためには、まず、Firebaseのプランを従量制のBlazeの料金プランにする必要があります。
利用した分だけ課金される方式ですが、上でも紹介したように、無料枠が大きく設定されているのでテストの範囲だと請求はないと思って大丈夫かと思います。ちなみに、24時間毎分起動してDBへデータ投入するFunctionの請求金額は、1ヶ月稼働して1円でした。
利用金額については、こちらのヘルプをご確認ください。



定期実行のFunctionの書き方
exports.{{Function名}} = functions.pubsub.schedule('every 1 minutes').onRun((context) => {
console.log("毎分実行します!");
return null;
});
schedule(‘every 1 minutes’)の部分がスケジュールの指定になりますが、CrontabまたはAppEngineのスケジュール書式で記述します。
毎日17時に起動、など時間を指定する場合は、タイムゾーンの設定も必要です。
FirebaseのCLIで定期実行するFunctionをデプロイすると、コンソール上ではこんな感じに見えます。



定期実行のFunctionの一時停止や再開は、GCPのコンソールで行うことが可能です。
以前はFirebase Cloud Functionsは定期実行に対応していませんでしたが、有料ではありますが定期実行にも対応したことで、サーバーレスなアプリケーションを支えるサービスが充実したように思います。
Firebase Cloud FunctionsのHTTP トリガーをアプリから呼ぶ方法についてはこちらで記事にしました。


