auth:IMPORT และ auth:export

  • คำสั่ง auth:import จะนำเข้าบัญชีผู้ใช้ไปยังโปรเจ็กต์ Firebase

  • คำสั่ง auth:export จะส่งออกบัญชีผู้ใช้เป็นไฟล์ JSON และ CSV

พารามิเตอร์ของแฮชรหัสผ่าน

หากต้องการระบุพารามิเตอร์ของแฮชรหัสผ่านที่ใช้สำหรับโปรเจ็กต์ ให้ไปที่ส่วนการตรวจสอบสิทธิ์ > ผู้ใช้ของคอนโซล Firebase แล้วคลิกไอคอนจุด 3 จุดเหนือรายชื่อผู้ใช้ คุณจะเห็นกล่องโต้ตอบที่มีรายการพารามิเตอร์แฮชของรหัสผ่านที่ใช้กับคำสั่ง 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:นำเข้า

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 อาร์กิวเมนต์นี้ต้องอยู่ในรูปแบบสตริงที่เข้ารหัสฐาน 64
เครื่องแยกเกลือ ตัวคั่นเกลือที่จะต่อท้าย Salt เมื่อยืนยันรหัสผ่าน
ไม่บังคับสำหรับอัลกอริทึมทั้งหมด อาร์กิวเมนต์นี้ต้องอยู่ในรูปแบบสตริงที่เข้ารหัสฐาน 64
รอบ จำนวนรอบที่ใช้แฮชรหัสผ่าน
ต้องระบุสำหรับอัลกอริทึม SCRYPT, MD5, SHA512, SHA256, SHA1, PBKDF_SHA1 และ PBKDF2_SHA256
ค่าใช้จ่ายสำหรับ Mem พารามิเตอร์นี้แสดงค่าใช้จ่ายหน่วยความจำที่ต้องใช้สำหรับอัลกอริทึม SCRYPT หรือค่า CPU/หน่วยความจำที่จำเป็นสำหรับอัลกอริทึม STANDARD_SCRYPT
การโหลดพร้อมกัน การโหลดพร้อมกันของอัลกอริทึมการแฮช
จำเป็นสำหรับอัลกอริทึม STANDARD_SCRYPT
ขนาดบล็อก ขนาดบล็อก (ปกติคือ 8) ของอัลกอริทึมการแฮช
จำเป็นสำหรับอัลกอริทึม STANDARD_SCRYPT
DK-L ความยาวคีย์ที่ได้รับของอัลกอริทึมการแฮช
จำเป็นสำหรับอัลกอริทึม STANDARD_SCRYPT
ลำดับการป้อนแฮช ลำดับของรหัสผ่านและ Salt
ค่าที่เป็นไปได้คือ 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
พารามิเตอร์
ไฟล์บัญชี ไฟล์ CSV หรือ JSON ที่จะส่งออก ดูรูปแบบไฟล์
รูปแบบไฟล์ ไม่บังคับ รูปแบบไฟล์ที่จะส่งออก: CSV หรือ JSON
หากชื่อไฟล์ที่ระบุในพารามิเตอร์ account_file ลงท้ายด้วย .csv หรือ .json ระบบจะใช้รูปแบบนั้นและละเว้นพารามิเตอร์นี้

รูปแบบไฟล์

ไฟล์บัญชีผู้ใช้อยู่ในรูปแบบ CSV หรือ JSON

CSV

ไฟล์บัญชีผู้ใช้ CSV มีรูปแบบดังต่อไปนี้

หมายเลขคอลัมน์ คำอธิบายของช่อง ประเภทช่อง ความคิดเห็น
1 UID สตริง ต้องระบุ
รหัสนี้ต้องไม่ซ้ำกันในทุกบัญชีในโปรเจ็กต์ Firebase ถ้าคุณนำเข้าบัญชีที่มี UID อยู่แล้ว ระบบจะเขียนทับบัญชีนั้น
2 อีเมล สตริง ไม่บังคับ
3 อีเมลได้รับการยืนยันแล้ว บูลีน ไม่บังคับ
4 แฮชรหัสผ่าน สตริง ไม่บังคับ
สตริงที่เข้ารหัส base64 ผู้โทรต้องมีบทบาทผู้แก้ไขหรือเจ้าของในช่องนี้
5 ซอลต์รหัสผ่าน สตริง ไม่บังคับ
สตริงที่เข้ารหัส base64 ผู้โทรต้องมีบทบาทผู้แก้ไขหรือเจ้าของในช่องนี้
6 ชื่อ สตริง ไม่บังคับ
7 URL รูปภาพ สตริง ไม่บังคับ
8 รหัส Google สตริง ไม่บังคับ
9 อีเมล Google สตริง ไม่บังคับ
10 ชื่อที่แสดงของ Google สตริง ไม่บังคับ
11 URL ของ Google Photos สตริง ไม่บังคับ
12 รหัส Facebook สตริง ไม่บังคับ
13 อีเมล Facebook สตริง ไม่บังคับ
14 ชื่อที่แสดงของ Facebook สตริง ไม่บังคับ
15 URL รูปภาพของ Facebook สตริง ไม่บังคับ
16 รหัส Twitter สตริง ไม่บังคับ
17 อีเมล Twitter สตริง ไม่บังคับ
18 ชื่อที่แสดงของ Twitter สตริง ไม่บังคับ
19 URL รูปภาพของ Twitter สตริง ไม่บังคับ
20 รหัส GitHub สตริง ไม่บังคับ
21 อีเมล GitHub สตริง ไม่บังคับ
22 ชื่อที่แสดงของ GitHub สตริง ไม่บังคับ
23 URL ของรูปภาพใน GitHub สตริง ไม่บังคับ
24 เวลาที่สร้างผู้ใช้ ยาว ไม่บังคับ
การประทับเวลา Unix Epoch ในหน่วยมิลลิวินาที
25 เวลาที่ลงชื่อเข้าใช้ล่าสุด ยาว ไม่บังคับ
การประทับเวลา Unix Epoch ในหน่วยมิลลิวินาที
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