LoginSignup
12
10

More than 5 years have passed since last update.

Firestore Local Emulatorを起動する

Posted at

FirestoreがGAになりました。
2019年2月8日現在、Firebaseのオンラインドキュメントではベータ版の表記がありますが、そのうち修正されることでしょう。
DatastoreとFirebase Realtime Databaseの後継となるKVSで、試してみたい方も多いと思います。
現在、firebase-toolsにエミュレータが用意されていて、以下のようにすればインストールと起動が可能です。

firebase setup:emulators:firestore
firebase serve --only firestore

が、この方法で起動した場合、node.jsからの接続しかサポートされていません。
他の言語から繋ぐにはどうするか。
firebase-toolsのコードを追うとわかるのですが、実はこのエミュレータ、gcloudのエミュレータのjarをnode.jsでラップしているだけのものです。
datastoreのエミュレータと同様、gcloudから起動すればオプションとしてパラメータを渡すことが出来ます。
しかしここでも一工夫が必要で、gcloud beta emulators firestore startとして起動するとオプションを渡すことが出来ません。
起動コマンドが呼んでいるコマンド(起動時に表示されます)に直接オプションを渡すことで、初めてdatastore local emulatorと同様に使用出来ます

~/google-cloud-sdk/platform/cloud-firestore-emulator/cloud_firestore_emulator start --host=::1 --port=8080 --project_id=project-name --rules="/your/rule/file/path"

なお、project idは--projectではなく--project_idで渡します。また、ruleを記述したファイルを読み込ませる必要があります。
また、起動時にFIRESTORE_EMULATOR_HOSTを環境変数に入れるように表示されますが、Scala(Java)では使用しません。
環境変数GOOGLE_CLOUD_PROJECTを設定すると、project idを指定出来ます。

12
10
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
12
10