Cloud FunctionsのFirestoreトリガーのテストをやってみた with エミュレータ

以下の記事を参考に、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トリガーのテストでのエミュレータの使用をまとめてみました。

間違ってる、もっといい方法あるよという所があれば、マサカリ投げてもらえるとありがたいです。