驗證:導入和驗證:匯出

  • auth:import指令將使用者帳號匯入 Firebase 專案。

  • auth:export指令將使用者帳號匯出到 JSON 和 CSV 檔案。

密碼哈希參數

若要確定用於您的專案的密碼雜湊參數,請導覽至 Firebase 控制台的「驗證」 > 「使用者」部分,然後按一下使用者清單上方的三點圖示。您將看到一個對話框,其中包含可與auth:importauth:export命令一起使用的密碼雜湊參數清單:

hash_config {
  algorithm: SCRYPT,
  base64_signer_key: <...sensitive...>,
  base64_salt_separator: <...sensitive...>,
  rounds: 8,
  mem_cost: 14,
}

這些值很敏感,因此請小心儲存。大多數 Firebase 專案都使用SCRYPT ,這是 scrypt 雜湊演算法的修改版本,這是新專案的預設演算法。

授權:導入

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
參數
帳戶文件包含要匯入的使用者帳戶的 CSV 或 JSON 檔案。請參閱文件格式
哈希演算法用於對使用者帳戶檔案中的密碼進行雜湊處理的演算法。
需要匯入帶有密碼欄位的帳戶。以下值之一: BCRYPTSCRYPTSTANDARD_SCRYPTHMAC_SHA512HMAC_SHA256HMAC_SHA1HMAC_MD5MD5SHA512SHA256SHA1PBKDF_SHA1 PBKDF2_SHA256
散列鍵用於散列密碼的密鑰。
SCRYPTHMAC_SHA512HMAC_SHA256HMAC_SHA1HMAC_MD5演算法是必要的。此參數的格式必須為base64 編碼的字串。
鹽分離器鹽分隔符,驗證密碼時將附加到鹽中。
對於所有演算法都是可選的。此參數的格式必須為base64 編碼的字串。
回合用於散列密碼的輪數。
SCRYPTMD5SHA512SHA256SHA1PBKDF_SHA1PBKDF2_SHA256演算法所需。
記憶體成本此參數表示SCRYPT演算法所需的記憶體成本或STANDARD_SCRYPT演算法所需的 CPU/記憶體成本。
平行化哈希演算法的平行化。
STANDARD_SCRYPT演算法所需。
區塊大小哈希演算法的區塊大小(通常為 8)。
STANDARD_SCRYPT演算法所需。
dk-長度哈希演算法的派生金鑰長度。
STANDARD_SCRYPT演算法所需。
哈希輸入順序密碼和鹽的順序。
可能的值為SALT_FIRSTPASSWORD_FIRST 。此標誌適用於SHA512SHA256SHA1MD5HMAC_SHA512HMAC_SHA256HMAC_SHA1HMAC_MD5

授權:匯出

firebase auth:export ACCOUNT_FILE --format=FILE_FORMAT
參數
帳戶文件要匯出到的 CSV 或 JSON 檔案。請參閱文件格式
文件格式選修的。要匯出的文件格式:CSV 或 JSON。
如果account_file參數中指定的檔案名稱以.csv.json結尾,則使用該格式並忽略此參數。

文件格式

使用者帳戶檔案可以採用CSVJSON格式。

CSV

CSV 使用者帳戶檔案具有以下格式:

列數字段說明字段類型評論
1使用者識別碼細繩必需的
此 ID 在 Firebase 專案中的所有帳戶中應該是唯一的。如果您匯入的 UID 已存在的帳戶,則該帳戶將被覆寫。
2電子郵件細繩選修的
3電子郵件已驗證布林值選修的
4密碼哈希細繩選修的
Base64 編碼的字串。此欄位要求呼叫者俱有編輯者或擁有者角色
5密碼鹽細繩選修的
Base64 編碼的字串。此欄位要求呼叫者俱有編輯者或擁有者角色
6姓名細繩選修的
7照片網址細繩選修的
8 GoogleID細繩選修的
9 Google電子郵件細繩選修的
10 Google顯示名稱細繩選修的
11谷歌照片網址細繩選修的
12臉書 ID細繩選修的
13臉書電子郵件細繩選修的
14 Facebook 顯示名稱細繩選修的
15臉書照片網址細繩選修的
16推特 ID細繩選修的
17 號推特電子郵件細繩選修的
18 Twitter 顯示名稱細繩選修的
19推特照片網址細繩選修的
20 GitHub ID細繩選修的
21 GitHub 電子郵件細繩選修的
22 號GitHub 顯示名稱細繩選修的
23 GitHub 照片網址細繩選修的
24使用者創建時間長的選修的
Epoch Unix 時間戳(以毫秒為單位)。
25最後登入時間長的選修的
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