雑談
お久しぶりです。 pregum_foxです。
大分 サボっていたので お休みしていたので、簡単な記事でリハビリしながらブログを再開したいとおもいます。
最近は、Flutter, Firebase, Swift, Kotlin, TypeScriptあたりを触っているので、その辺りの記事が多くなると思います。
では目次です。
背景
FirestoreのFirestoreを使って開発することがありますが、その際にできているデータをテキスト形式で取得したいことがありますが、今まではスクリプトを書いて取得していてただダウンロードするだけで時間がかかっていました。
gcloud コマンドでfirestoreのデータをエクスポートする機能はありますが、人の目では見られない形式なのでEmulatorでみるか、もしくは別のツールを使う必要があります。
良いツールがないか探していたところ、node-firestore-import-export#exportというnpmパッケージを見つけたので、使い方を備忘録として残しておきます。
使い方
セットアップ
node-firestore-import-export
のインストール
まずはnpm(node.jsのパッケージ管理ツール)を使えるようにする必要があります。
npm インストール 手順
などで見つかった記事を参考にnpm をインストールしてください。
ターミナルで npm -v
コマンドを打ってバージョンが表示されればインストールできています。
その後、ターミナル上でどこでも使えるように、npm install -g node-firestore-import-export
でグローバルにnode-firestore-import-export をインストールします。
Google Cloud Account Credentialsの取得
下記画像のようにFirebaseの歯車ボタン > 「プロジェクトの設定」> 「サービスアカウント」タブ から「新しい秘密鍵の生成」でファイルを取得し、作業ディレクトリにcredentials.json
という名前で保存します。
コマンド
Firestoreに保存されているデータをbackup.json
という名前で保存するコマンド
※ コマンドを叩くディレクトリにcredentials.json
がある想定です。
npx -p node-firestore-import-export firestore-export -a credentials.json -b backup.json
特定のコレクションだけ取得するコマンド
e.g.) usersコレクションだけを取得したい場合
npx -p node-firestore-import-export firestore-export -a credentials.json -b backup.json -n users
でOK
EmulatorのFirestoreのデータを取得したい場合は、FIRESTORE_EMULATOR_HOST
の環境変数をexportするといけるそう(要検証)
下記のような感じ
export FIRESTORE_EMULATOR_HOST=0.0.0.0:8081