auth:import dan auth:export

  • Perintah auth:import mengimpor akun pengguna ke project Firebase.

  • Perintah auth:export mengekspor akun pengguna ke file JSON dan CSV.

Parameter hash sandi

Untuk menentukan parameter hash sandi yang digunakan untuk project Anda, buka bagian Authentication Pengguna di Firebase console, lalu klik ikon tiga titik di atas daftar pengguna. Anda akan melihat dialog yang berisi daftar parameter hash sandi yang dapat digunakan dengan perintah auth:import dan auth:export:

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

Nilai ini bersifat sensitif, jadi simpan dengan hati-hati. Sebagian besar project Firebase menggunakan SCRYPT, versi modifikasi algoritme hashing scrypt, yang merupakan default untuk project baru.

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
Parameter
account_file File CSV atau JSON yang memuat akun pengguna yang akan diimpor. Lihat Format file.
hash-algo Algoritme yang digunakan untuk meng-hash sandi pada file akun pengguna.
Harus ada untuk mengimpor akun dengan kolom sandi. Salah satu dari nilai berikut: BCRYPT, SCRYPT, STANDARD_SCRYPT, HMAC_SHA512, HMAC_SHA256, HMAC_SHA1, HMAC_MD5, MD5, SHA512, SHA256, SHA1, PBKDF_SHA1, PBKDF2_SHA256.
hash-key Kunci yang digunakan untuk meng-hash sandi.
Harus ada untuk algoritme SCRYPT, HMAC_SHA512, HMAC_SHA256, HMAC_SHA1, dan HMAC_MD5. Argumen ini harus diformat sebagai string berenkode base64.
salt-separator Pemisah salt yang akan ditambahkan ke salt saat memverifikasi sandi.
Opsional untuk semua algoritme. Argumen ini harus diformat sebagai string berenkode base64.
rounds Jumlah putaran yang digunakan untuk meng-hash sandi.
Diperlukan untuk algoritme SCRYPT, MD5, SHA512, SHA256, SHA1, PBKDF_SHA1, dan PBKDF2_SHA256.
mem-cost Parameter ini mewakili beban memori yang diperlukan untuk algoritme SCRYPT ATAU beban CPU/memori yang diperlukan untuk algoritme STANDARD_SCRYPT.
paralelisasi Paralelisasi dari algoritme hashing.
Diperlukan untuk algoritme STANDARD_SCRYPT.
block-size Ukuran blok (biasanya 8) dari algoritme hashing.
Diperlukan untuk algoritme STANDARD_SCRYPT.
dk-len Panjang kunci turunan dari algoritme hashing.
Diperlukan untuk algoritme STANDARD_SCRYPT.
hash-input-order Urutan sandi dan salt.
Nilai yang mungkin adalah SALT_FIRST dan PASSWORD_FIRST. Flag ini berlaku untuk SHA512, SHA256, SHA1, MD5, HMAC_SHA512, HMAC_SHA256, HMAC_SHA1, dan HMAC_MD5.

auth:export

firebase auth:export ACCOUNT_FILE --format=FILE_FORMAT
Parameter
account_file File CSV atau JSON sebagai tujuan ekspor. Lihat Format file.
file_format Opsional. Format file yang akan diekspor: CSV atau JSON.
Jika nama file yang ditentukan dalam parameter account_file diakhiri dengan .csv atau .json, format tersebut yang akan digunakan dan parameter ini akan diabaikan.

Format file

File akun pengguna dapat diformat sebagai CSV atau JSON.

CSV

File akun pengguna CSV menggunakan format berikut:

Nomor kolom Deskripsi kolom Jenis kolom Komentar
1 UID String Wajib
ID ini harus unik di antara semua akun di project Firebase Anda. Jika Anda mengimpor akun dengan UID yang sudah ada, maka akun tersebut akan ditimpa.
2 Email String Opsional
3 Email Diverifikasi Boolean Opsional
4 Hash Sandi String Opsional
String berenkode base64. Kolom ini memerlukan pemanggil untuk memiliki peran Editor atau Pemilik.
5 Salt Sandi String Opsional
String berenkode base64. Kolom ini memerlukan pemanggil untuk memiliki peran Editor atau Pemilik.
6 Nama String Opsional
7 URL Foto String Opsional
8 ID Google String Opsional
9 Email Google String Opsional
10 Nama Tampilan Google String Opsional
11 URL Foto Google String Opsional
12 ID Facebook String Opsional
13 Email Facebook String Opsional
14 Nama Tampilan Facebook String Opsional
15 URL Foto Facebook String Opsional
16 ID Twitter String Opsional
17 Email Twitter String Opsional
18 Nama Tampilan Twitter String Opsional
19 URL Foto Twitter String Opsional
20 ID GitHub String Opsional
21 Email GitHub String Opsional
22 Nama Tampilan GitHub String Opsional
23 URL Foto GitHub String Opsional
24 Waktu Pembuatan Pengguna Long Opsional
Stempel Waktu Epoch Unix dalam milidetik.
25 Waktu Login Terakhir Long Opsional
Stempel Waktu Epoch Unix dalam milidetik.
26 Nomor Telepon String Opsional

Jika tidak menentukan nilai opsional, pastikan Anda masih menyertakan kolom kosong untuk nilai tersebut. Kolom kosong bisa berupa sembarang karakter spasi.

Misalnya, baris berikut menunjukkan akun pengguna:

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

File akun pengguna JSON menggunakan format berikut:

{
  "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
        },
        ...
      ]
    },
    ...
  ]
}

Ganti PROVIDER_ID dengan salah satu nilai berikut:

  • google.com
  • facebook.com
  • github.com
  • twitter.com