auth:import
指令將使用者帳號匯入 Firebase 專案。auth:export
指令將使用者帳號匯出到 JSON 和 CSV 檔案。
密碼哈希參數
若要確定用於您的專案的密碼雜湊參數,請導覽至 Firebase 控制台的「驗證」 > 「使用者」部分,然後按一下使用者清單上方的三點圖示。您將看到一個對話框,其中包含可與auth:import
和auth: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 檔案。請參閱文件格式。 |
哈希演算法 | 用於對使用者帳戶檔案中的密碼進行雜湊處理的演算法。 需要匯入帶有密碼欄位的帳戶。以下值之一: BCRYPT 、 SCRYPT 、 STANDARD_SCRYPT 、 HMAC_SHA512 、 HMAC_SHA256 、 HMAC_SHA1 、 HMAC_MD5 、 MD5 、 SHA512 、 SHA256 、 SHA1 、 PBKDF_SHA1 PBKDF2_SHA256 。 |
散列鍵 | 用於散列密碼的密鑰。SCRYPT 、 HMAC_SHA512 、 HMAC_SHA256 、 HMAC_SHA1 和HMAC_MD5 演算法是必要的。此參數的格式必須為base64 編碼的字串。 |
鹽分離器 | 鹽分隔符,驗證密碼時將附加到鹽中。 對於所有演算法都是可選的。此參數的格式必須為base64 編碼的字串。 |
回合 | 用於散列密碼的輪數。SCRYPT 、 MD5 、 SHA512 、 SHA256 、 SHA1 、 PBKDF_SHA1 和PBKDF2_SHA256 演算法所需。 |
記憶體成本 | 此參數表示SCRYPT 演算法所需的記憶體成本或STANDARD_SCRYPT 演算法所需的 CPU/記憶體成本。 |
平行化 | 哈希演算法的平行化。STANDARD_SCRYPT 演算法所需。 |
區塊大小 | 哈希演算法的區塊大小(通常為 8)。STANDARD_SCRYPT 演算法所需。 |
dk-長度 | 哈希演算法的派生金鑰長度。STANDARD_SCRYPT 演算法所需。 |
哈希輸入順序 | 密碼和鹽的順序。 可能的值為 SALT_FIRST 和PASSWORD_FIRST 。此標誌適用於SHA512 、 SHA256 、 SHA1 、 MD5 、 HMAC_SHA512 、 HMAC_SHA256 、 HMAC_SHA1 和HMAC_MD5 。 |
授權:匯出
firebase auth:export ACCOUNT_FILE --format=FILE_FORMAT
參數 | |
---|---|
帳戶文件 | 要匯出到的 CSV 或 JSON 檔案。請參閱文件格式。 |
文件格式 | 選修的。要匯出的文件格式:CSV 或 JSON。 如果 account_file 參數中指定的檔案名稱以.csv 或.json 結尾,則使用該格式並忽略此參數。 |
文件格式
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