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を指定出来ます。