以下の記事を参考に、Cloud FunctionsのFirestoreトリガーのテストをやってみました。
具体的なテストは、ほぼ上記ページのトレースなので省略します。
上記ページのトレースとは別に、エミュレータが使えるかどうかを試してみたので、簡単にまとめてみたいと思います。
結論から言うと、エミュレータは使えそうな感じです。
以下、エミュレータ利用のために、上記ページのコードを変更した部分です。
import fftest from 'firebase-functions-test' import * as firebaseTesting from '@firebase/rules-unit-testing' const projectId = 'sample-project-id' const test = fftest({ projectId: projectId, databaseURL: proccess.env.FIRESTORE_EMULATOR_HOST }) const firestore = firebaseTesting .initializeTestApp({ projectId: projectId, }) .firestore()
FIRESTORE_EMULATOR_HOST
が設定されていないみたいなエラーが出たら、エミュレータのホストを設定してください。
Emulator Suite UIで確認したところ、期待通りfunctionsが動作していたので、エミュレータで問題なく使えていそうです。
以下のように、databaseURL
を省略しても動作しました。
const test = fftest({ projectId: projectId, })
デフォルトだとFIRESTORE_EMULATOR_HOST
を使用してるっぽいです。
ちなみに、projectId
も指定しないとオフラインモードになるので、エミュレータは使用されません。
以上、簡単に、Cloud FunctionsのFirestoreトリガーのテストでのエミュレータの使用をまとめてみました。
間違ってる、もっといい方法あるよという所があれば、マサカリ投げてもらえるとありがたいです。