1
1

More than 3 years have passed since last update.

ある時刻で関数を実行したい?それFirebase Functionsでやっちゃおうよ

Posted at

どうもアッキーです。

ふと、日にちをまたいだ時にユーザーの決済の日にちが過ぎていないかを調べたいなと思っていたら、Firebaseで常備されているらしい。

Node.jsでcronと言うパッケージがあるらしいが、Firebaseでも実行できるらしい!

記事を見なくてもFirebaseの公式ドキュメント(関数のスケジュール設定)にも書いてあるので是非ご覧ください。

公式ドキュメントにも書いてあるのですが、この公式ドキュメントでは実行の時の時間について詳しく書いておらず、そのためにこの記事を書いていこうかなと思います。

とりあえず、説明していきます!

時間の設定

今回は日にちをまたぐときに実行する方法を書いていきます!

index.js
const functions = require('firebase-functions')
const admin = require('firebase-admin')

const serviceAccount = 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) => {
    // 処理の実行
    return 0
  })

.pubsub.schedulecronのように指定された時刻で実行する関数を定義することができます。

every day 00:00のように時間を指定することで、この場合00:00にこの関数が実行されます。

また、return 0を記述しないと警告が表示されるので、必ず記述してください。(return trueでも警告が表示される)

テスト段階では時刻まで待つのは気が長いので、時間指定のところで* * * * *と指定すれば毎分実行されます。

ただし、毎分実行はほっておくとずっと実行されるので、1回実行したらFirebaseコンソール画面から関数を消去してください!(ログは残るので実行結果は参照できる)

このようにして指定した時刻で関数を実行することができます!

Firebase使いやすすぎてハンパない!!

以上、「ある時刻で関数を実行したい?それFirebase Functionsでやっちゃおうよ」でした!

また、何か間違っていることがあればご指摘頂けると幸いです。

他にも初心者さん向けに記事を投稿しているので、時間があれば他の記事も見て下さい!!

あと、最近「ココナラ」で環境構築のお手伝いをするサービスを始めました。

気になる方はぜひ一度ご相談ください!

Thank you for reading

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1