- auth:importコマンドは、ユーザー アカウントを Firebase プロジェクトにインポートします。
- auth:exportコマンドは、ユーザー アカウントを JSON ファイルまたは CSV ファイルにエクスポートします。
パスワード ハッシュ パラメータ
プロジェクトに使用されているパスワード ハッシュ パラメータを確認するには、Firebase コンソールで [Authentication] > [Users] セクションの順に移動し、ユーザーのリストの上にあるその他アイコンをクリックします。ダイアログに、auth:import コマンドと auth:export コマンドで使用できるパスワード ハッシュ パラメータの一覧が表示されます。
hash_config {
  algorithm: SCRYPT,
  base64_signer_key: <...sensitive...>,
  base64_salt_separator: <...sensitive...>,
  rounds: 8,
  mem_cost: 14,
}
これらの値は機密情報のため、保存する際は注意が必要です。ほとんどの Firebase プロジェクトで使用されているのは、SCRYPT ハッシンング アルゴリズムの修正バージョンである SCRYPT です。新しいプロジェクトではこれがデフォルトになります。
auth:import
firebase auth:import ACCOUNT_FILE    \
    --hash-algo=HASH_ALGORITHM         \
    --hash-key=KEY                     \
    --salt-separator=SALT_SEPARATOR    \
    --rounds=ROUNDS                    \
    --mem-cost=MEM_COST                \
    --parallelization=PARALLELIZATION  \
    --block-size=BLOCK_SIZE            \
    --dk-len=DK_LEN                    \
    --hash-input-order=HASH_INPUT_ORDER
| パラメータ | |
|---|---|
| account_file | インポートするユーザー アカウントが格納された CSV または JSON ファイル。ファイル形式をご覧ください。 | 
| hash-algo | ユーザー アカウント ファイル内のパスワードをハッシュするために使用されるアルゴリズム。 パスワード フィールドつきでアカウントをインポートする場合には必須です。 次のいずれかの値になります。 BCRYPT、SCRYPT、STANDARD_SCRYPT、HMAC_SHA512、HMAC_SHA256、HMAC_SHA1、HMAC_MD5、MD5、SHA512、SHA256、SHA1、PBKDF_SHA1、PBKDF2_SHA256。 | 
| hash-key | パスワードのハッシュに使用されるキー。 SCRYPT、HMAC_SHA512、HMAC_SHA256、HMAC_SHA1、HMAC_MD5のアルゴリズムに必要です。
     この引数は、base64 でエンコードされた文字列としてフォーマットする必要があります。 | 
| salt-separator | パスワードの確認で使用されるソルトの区切り文字。 すべてのアルゴリズムで省略可能です。この引数は、base64 でエンコードされた文字列としてフォーマットする必要があります。 | 
| rounds | パスワードのハッシュに使用されるラウンド数。 SCRYPT、MD5、SHA512、SHA256、SHA1、PBKDF_SHA1、PBKDF2_SHA256のアルゴリズムに必要です。 | 
| mem-cost | このパラメータは、 SCRYPTアルゴリズムに必要なメモリのコスト、またはSTANDARD_SCRYPTアルゴリズムに必要な CPU / メモリのコストを表します。 | 
| parallelization | ハッシング アルゴリズムの並列化。 STANDARD_SCRYPTのアルゴリズムに必要です。 | 
| block-size | ハッシング アルゴリズムのブロックサイズ(通常は 8)。 STANDARD_SCRYPTのアルゴリズムに必要です。 | 
| dk-len | ハッシング アルゴリズムの派生キーの長さ。 STANDARD_SCRYPTのアルゴリズムに必要です。 | 
| hash-input-order | パスワードとソルトの順序。 有効な値は SALT_FIRSTとPASSWORD_FIRSTです。このフラグはSHA512、SHA256、SHA1、MD5、HMAC_SHA512、HMAC_SHA256、HMAC_SHA1、HMAC_MD5に適用されます。 | 
auth:export
firebase auth:export ACCOUNT_FILE --format=FILE_FORMAT
| パラメータ | |
|---|---|
| account_file | エクスポート先の CSV または JSON ファイル。ファイル形式をご覧ください。 | 
| file_format | 省略可。エクスポートするファイル形式: CSV または JSON。 account_fileパラメータで指定されたファイル名の末尾が.csvまたは.jsonの場合、その形式が使用され、このパラメータは無視されます。 | 
ファイル形式
ユーザー アカウント ファイルを CSV または JSON としてフォーマットできます。
CSV
CSV ユーザー アカウント ファイルは次の形式になります。
| 列番号 | フィールドの説明 | フィールド タイプ | コメント | 
|---|---|---|---|
| 1 | UID | 文字列 | 必須 この ID は、Firebase プロジェクト内のすべてのアカウントで一意である必要があります。すでに存在する UID を持つアカウントをインポートすると、アカウントが上書きされます。 | 
| 2 | メール | 文字列 | 省略可 | 
| 3 | メール アドレスの確認完了 | ブール値 | 省略可 | 
| 4 | パスワード ハッシュ | 文字列 | 省略可 base64 でエンコードされた文字列。このフィールドを使用するには、呼び出し側に編集者または所有者の役割が必要です。 | 
| 5 | パスワード Salt | 文字列 | 省略可 base64 でエンコードされた文字列。このフィールドを使用するには、呼び出し側に編集者または所有者の役割が必要です。 | 
| 6 | 名前 | 文字列 | 省略可 | 
| 7 | 写真 URL | 文字列 | 省略可 | 
| 8 | Google ID | 文字列 | 省略可 | 
| 9 | Google メール | 文字列 | 省略可 | 
| 10 | Google 表示名 | 文字列 | 省略可 | 
| 11 | Google 写真 URL | 文字列 | 省略可 | 
| 12 | Facebook ID | 文字列 | 省略可 | 
| 13 | Facebook メール | 文字列 | 省略可 | 
| 14 | Facebook 表示名 | 文字列 | 省略可 | 
| 15 | Facebook 写真 URL | 文字列 | 省略可 | 
| 16 | Twitter ID | 文字列 | 省略可 | 
| 17 | Twitter メール | 文字列 | 省略可 | 
| 18 | Twitter 表示名 | 文字列 | 省略可 | 
| 19 | Twitter 写真 URL | 文字列 | 省略可 | 
| 20 | GitHub ID | 文字列 | 省略可 | 
| 21 | GitHub メール | 文字列 | 省略可 | 
| 22 | GitHub 表示名 | 文字列 | 省略可 | 
| 23 | GitHub 写真 URL | 文字列 | 省略可 | 
| 24 | ユーザーの作成時間 | Long | 省略可 Epoch Unix タイムスタンプ(ミリ秒単位)。 | 
| 25 | 最終ログイン時間 | Long | 省略可 Epoch Unix タイムスタンプ(ミリ秒単位)。 | 
| 26 | 電話番号 | 文字列 | 省略可 | 
省略可能な値を指定しない場合、該当する位置を空のフィールドにしておく必要があります。空のフィールドは、任意の数のスペースで表します。
たとえば、次の行はユーザー アカウントを表します。
111, test@test.org, false, Jlf7onfLbzqPNFP/1pqhx6fQF/w=, c2FsdC0x, Test User, http://photo.com/123, , , , , 123, test@test.org, Test FB User, http://photo.com/456, , , , , , , , , 1486324027000, 1486324027000
JSON
JSON ユーザー アカウント ファイルは次の形式になります。
{
  "users": [
    {
      "localId": UID,
      "email": EMAIL_ADDRESS
      "emailVerified": EMAIL_VERIFIED,
      "passwordHash": BASE64_ENCODED_PASSWORD_HASH,
      "salt": BASE64_ENCODED_PASSWORD_SALT,
      "displayName": NAME,
      "photoUrl": PHOTO_URL,
      "createdAt": CREATED_AT_IN_MILLIS,
      "lastSignedInAt": LAST_SIGNEDIN_AT_IN_MILLIS,
      "phoneNumber": PHONE_NUMBER
      "providerUserInfo": [
        {
          "providerId": PROVIDER_ID,
          "rawId": PROVIDER_UID,
          "email":  PROVIDER_EMAIL,
          "displayName": PROVIDER_NAME,
          "photoUrl": PROVIDER_PHOTO_URL
        },
        ...
      ]
    },
    ...
  ]
}PROVIDER_ID は次のいずれかの値に置き換えます。
- google.com
- facebook.com
- github.com
- twitter.com