auth:import と auth:export

  • 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 ユーザー アカウント ファイル内のパスワードをハッシュするために使用されるアルゴリズム。
パスワード フィールドつきでアカウントをインポートする場合には必須です。 次のいずれかの値になります。BCRYPTSCRYPTSTANDARD_SCRYPTHMAC_SHA512HMAC_SHA256HMAC_SHA1HMAC_MD5MD5SHA512SHA256SHA1PBKDF_SHA1PBKDF2_SHA256
hash-key パスワードのハッシュに使用されるキー。
SCRYPTHMAC_SHA512HMAC_SHA256HMAC_SHA1HMAC_MD5 のアルゴリズムに必要です。 この引数は、base64 でエンコードされた文字列としてフォーマットする必要があります。
salt-separator パスワードの確認で使用されるソルトの区切り文字。
すべてのアルゴリズムで省略可能です。この引数は、base64 でエンコードされた文字列としてフォーマットする必要があります。
rounds パスワードのハッシュに使用されるラウンド数。
SCRYPTMD5SHA512SHA256SHA1PBKDF_SHA1PBKDF2_SHA256 のアルゴリズムに必要です。
mem-cost このパラメータは、SCRYPT アルゴリズムに必要なメモリのコスト、または STANDARD_SCRYPT アルゴリズムに必要な CPU / メモリのコストを表します。
parallelization ハッシング アルゴリズムの並列化。
STANDARD_SCRYPT のアルゴリズムに必要です。
block-size ハッシング アルゴリズムのブロックサイズ(通常は 8)。
STANDARD_SCRYPT のアルゴリズムに必要です。
dk-len ハッシング アルゴリズムの派生キーの長さ。
STANDARD_SCRYPT のアルゴリズムに必要です。
hash-input-order パスワードとソルトの順序。
有効な値は SALT_FIRSTPASSWORD_FIRST です。このフラグは SHA512SHA256SHA1MD5HMAC_SHA512HMAC_SHA256HMAC_SHA1HMAC_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