見出し画像

Firebase Authenticationのプロジェクト間移行

moroです。🦥


Firebaseの環境を dev/stg/prod に分けて開発する際に、Authentication にあるログイン情報を他のプロジェクトに移行する際の手順を紹介します。

公式にも書いてありますが、
こちらの記事では初心者向けに丁寧に説明してあります。



1. ファイル作成

ログイン情報を格納するためのcsvファイルを作成します。ターミナルでファイルを作成したい場所に移動し、このコマンドを打つと、空のファイルが作成されます。

touch ファイル名.csv


2. firebase-toolsをインストール

firebaseコマンドを使うための、firebase-tools(Firebaseに関する事をコマンドで操作するためのツール)はこのコマンドでインストールします。

npm install -g firebase-tools


3. Firebaseにログイン

ターミナルからFirebaseにこちらのコマンドでログインします。

firebase login
スクリーンショット 2020-11-10 16.03.55

匿名で情報を収集してもいいか聞かれているので"y"を入力して承諾します。

スクリーンショット 2020-11-10 16.04.13

するとこのように "Success!" と出てきて無事ログインできます。


4. ログイン情報を移行元から1で作成したファイルにexport

1で作成したcsvファイルに移行元のログイン情報をexport(書き出し)します。プロジェクト名はFirebaseのプロジェクトIDで、こちらのコンソールで表示されているプロジェクトの名前の事です。https://console.firebase.google.com/u/0/?hl=ja

firebase auth:export ファイル名.csv --project プロジェクト名

これを実行してFinderからcsvファイルをクリックして開くと、データが入っているのが確認できると思います。


5. ログイン情報をファイルから移行先にimport

次に3でexportしたファイルに入っているデータをFirebaseプロジェクトの移行先にimportします。
移行するコマンドに必要な情報をFirebase>Authentication>Users の右上のボタンをクリックすると "パスワードハッシュパラメータ" と表示されるのでクリックし取得します。

スクリーンショット 2020-11-10 16.31.13

するとこのような情報が取得できると思います。

スクリーンショット 2020-11-10 16.40.44

これらの情報を下記の内容に置き換えます。(<>は除きます)
ファイル名は先ほどexportしたデータが入ったファイル名、プロジェクト名は移行先のプロジェクト名です。こちらもコンソールで確認できます。

firebase auth:import ファイル名.csv                \
   --hash-algo=<algorithm>                      \
   --hash-key=<bash64_singner_key>              \
   --salt-separator=<base64_salt_separator>     \
   --rounds=<rounds>                            \
   --mem-cost=<mem_cost>                        \
   --project プロジェクト名

こちらのコマンドをターミナルで打ち、 "Imported successfully" と表示されるとimportが成功することがわかります。

Firebaseプロジェクトの移行先のAuthenticationを確認すると、ログイン情報の移行が完了していると思います。


以上がFirebase Authenticationのプロジェクト間移行でした!
Authenticationの移行は簡単ですが、私はstorageとFirestoreの移行に苦労したので、次回はそちらを紹介します。

この記事が気に入ったらサポートをしてみませんか?