2019年10月21日月曜日

firebase functionsのhttps以外をローカルでテストするには的なお話

  • このエントリーをはてなブックマークに追加

firebase functions使うとちょっとしたものを公開するのにすごく便利なわけで。
それにhttpsだけではなくpub/subなんていうのもあったりする。
このpub/subを使うとcronみたいなスケジュール的なことができたり。

ってことで今日はこのpubsubのテストをするには的なお話をば。

import * as functions from 'firebase-functions';

const hoge = functions.pubsub.schedule('every 1 minutes').onRun((context) => {
  console.log("hoge");
  return null;
})

とりあえずこんな感じで1分ごとにhogeをconsoleする関数を作る的な。
pubsubのあとにscheduleで繋げば大丈夫的な。
もちろんcron的な書き方もできたり。

で、このpub/sub自体はnpm run serve(firebase serve --only functions)でテストすることができず。
なのでnpm run shell(firebase functions:shell)を使うとpubsubだけでなく他の関数もテストすることができるようになるという。

✔  functions: Emulator started at http://localhost:5000
i  functions: Loaded functions: hoge
firebase > hoge()
'Successfully invoked function.'
firebase > >  hoge

ってな感じで対話型でどの関数を実行するか?と聞かれるので、実行していくと。
関数を実行したいからちゃんとhoge()とする必要がある。
ちなみに引数とかも渡すことができるので便利。
けどcron的に毎分実行してくれるとかはできなかったんだけど、自分の設定が悪いのかなんなのかはよくわからず。

ってな感じでとりあえずfunctions:shellを使えばpubsubもテストできるよ的なみたいな。

0 件のコメント:

コメントを投稿

Adsense