4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Firestoreのバックアップをローカルのemulatorにインポートする

Posted at

手順

  1. firestoreのデータをエクスポート
  2. エクスポートされたデータをCloudStorageからダウンロード
  3. firestoreエミュレーターにダウンロードしたデータをインポートして起動する

1. firestoreのデータをエクスポート

くわしくはこちら参照

gcloud firestore export gs://{{project_name}}.appspot.com/ --async

2. エクスポートされたデータをCloudStorageからダウンロード

詳しくはこちら参照

$ gsutil -m cp -R gs://{{project_name}}.appspot.com/ ./store_export

3. firestoreエミュレーターにダウンロードしたデータをインポートして起動する

問題はここ。
ローカルでエミュレーターのデータをエクスポート/インポートに関してはこちらにあるがデータ形式をみたところCloudStorage上も同じようなので、同じようにファイルを指定すればインポートできましたが、ダウンロードしたそのままではできなかったため備忘録を残そうと思います。

firebase-export-metadata.jsonを作成

importオプションで指定するディレクトリ直下に作成します。
エミュレーターのエクスポートで生成されるファイルをベースにしています。
エミュレーターエクスポートした場合のファイル内容

firebase-export-metadata.json
{
  "version": "8.4.3",
  "firestore": {
    "version": "1.11.4",
    "path": "firestore_export",
    "metadata_file": "firestore_export/firestore_export.overall_export_metadata"
  }
}

jsonのpathとmetadata_fileを編集

pathはall_namespacesが直下にあるディレクトリパス。
metadata_fileは.overall_export_metadata のファイル名を指定する。

補足
overall_export_metadataのファイル名がそのままだと:が使われておりmacのfinderだと/になるので注意

インポートオプションを指定して起動

$ firebase emulators:start --only firestore --import {{firebase-export-metadata.jsonがあるディレクトリ}}
4
3
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
4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?