どうもアッキーです。
ふと、日にちをまたいだ時にユーザーの決済の日にちが過ぎていないかを調べたいなと思っていたら、Firebaseで常備されているらしい。
Node.jsでcron
と言うパッケージがあるらしいが、Firebaseでも実行できるらしい!
記事を見なくてもFirebaseの公式ドキュメント(関数のスケジュール設定)にも書いてあるので是非ご覧ください。
公式ドキュメントにも書いてあるのですが、この公式ドキュメントでは実行の時の時間について詳しく書いておらず、そのためにこの記事を書いていこうかなと思います。
とりあえず、説明していきます!
時間の設定
今回は日にちをまたぐときに実行する方法を書いていきます!
constfunctions=require('firebase-functions')constadmin=require('firebase-admin')constserviceAccount=require('./project-firebase-adminsdk-***.json')admin.initializeApp({credential:admin.credential.cert(serviceAccount),databaseURL:'https://project-default-rtdb.firebaseio.com'})exports.deleteQrKeyInformation=functions.region('asia-northeast1').pubsub.schedule('every day 00:00').timeZone('Asia/Tokyo').onRun(async(context)=>{// 処理の実行return0})
.pubsub.schedule
でcron
のように指定された時刻で実行する関数を定義することができます。
every day 00:00
のように時間を指定することで、この場合00:00
にこの関数が実行されます。
また、return 0
を記述しないと警告が表示されるので、必ず記述してください。(return true
でも警告が表示される)
テスト段階では時刻まで待つのは気が長いので、時間指定のところで* * * * *
と指定すれば毎分実行されます。
ただし、毎分実行はほっておくとずっと実行されるので、1回実行したらFirebaseコンソール画面から関数を消去してください!(ログは残るので実行結果は参照できる)
このようにして指定した時刻で関数を実行することができます!
Firebase使いやすすぎてハンパない!!
以上、「ある時刻で関数を実行したい?それFirebase Functionsでやっちゃおうよ」でした!
また、何か間違っていることがあればご指摘頂けると幸いです。
他にも初心者さん向けに記事を投稿しているので、時間があれば他の記事も見て下さい!!
あと、最近「ココナラ」で環境構築のお手伝いをするサービスを始めました。
気になる方はぜひ一度ご相談ください!
Thank you for reading