auth:import i auth:export

  • Polecenie auth:import importuje konta użytkowników do projektów Firebase.

  • Polecenie auth:export eksportuje konta użytkowników do plików JSON i CSV.

Parametry hasza hasła

Aby określić parametry skrótu hasła używane w projekcie, otwórz sekcję Uwierzytelnianie > Użytkownicy w konsoli Firebase i nad listą użytkowników kliknij ikonę z 3 kropkami. Pojawi się okno z listą parametrów skrótu hasła, których możesz użyć w poleceniach auth:import i auth:export:

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

Wartości te są wrażliwe, więc przechowuj je z rozwagą. Większość projektów Firebase używa SCRYPT, zmodyfikowanej wersji algorytmu haszowania scrypt, która jest ustawieniem domyślnym w nowych projektach.

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
Parametry
plik_konta Plik CSV lub JSON zawierający konta użytkowników do zaimportowania. Zobacz Format pliku.
hasz-algo Algorytm używany do haszowania haseł w pliku kont użytkowników.
Wymagane, aby importować konta z polami haseł. Jedna z tych wartości: BCRYPT, SCRYPT, STANDARD_SCRYPT, HMAC_SHA512, HMAC_SHA256, HMAC_SHA1, HMAC_MD5, MD5, SHA512, SHA256, SHA1, PBKDF_SHA1, PBKDF2_SHA256.
klucz-skrótowy Klucz używany do haszowania haseł.
Wymagany w przypadku algorytmów SCRYPT, HMAC_SHA512, HMAC_SHA256, HMAC_SHA1 i HMAC_MD5. Ten argument musi być sformatowany jako ciąg zakodowany w formacie base64.
separator soli Separator soli, który jest dodawany do ciągu zaburzającego podczas weryfikowania hasła.
Opcjonalny w przypadku wszystkich algorytmów. Ten argument musi być sformatowany jako ciąg zakodowany w formacie base64.
rundy Liczba rund używanych do haszowania haseł.
Wymagany w przypadku algorytmów SCRYPT, MD5, SHA512, SHA256, SHA1, PBKDF_SHA1 i PBKDF2_SHA256.
mem-cost Ten parametr reprezentuje koszt pamięci wymagany przez algorytm SCRYPT LUB koszt procesora/pamięci wymaganych przez algorytm STANDARD_SCRYPT.
równoległość Równoległość algorytmu haszowania.
Wymagany w przypadku algorytmu STANDARD_SCRYPT.
rozmiar blokowy Rozmiar bloku (zwykle 8) algorytmu haszowania.
Wymagany w przypadku algorytmu STANDARD_SCRYPT.
dk-len Pochodna długość klucza algorytmu szyfrowania.
Wymagany w przypadku algorytmu STANDARD_SCRYPT.
hasz-input-order Kolejność haseł i ciągów zaburzających.
Możliwe wartości to SALT_FIRST i PASSWORD_FIRST. Ta flaga ma zastosowanie do SHA512, SHA256, SHA1, MD5, HMAC_SHA512, HMAC_SHA256, HMAC_SHA1 i HMAC_MD5.

auth:export

firebase auth:export ACCOUNT_FILE --format=FILE_FORMAT
Parametry
plik_konta Plik CSV lub JSON, do którego ma nastąpić eksport. Zobacz Format pliku.
format_pliku Opcjonalne. Format pliku do wyeksportowania: CSV lub JSON.
Jeśli nazwa pliku podana w parametrze account_file kończy się na .csv lub .json, format ten jest używany i ten parametr jest ignorowany.

Format pliku

Plik kont użytkowników może mieć format CSV lub JSON.

CSV,

Plik CSV z informacjami o kontach użytkowników ma taki format:

Numer kolumny Opis pola Typ pola Komentarze
1 Użytkownik (UID) Ciąg znaków Wymagane
Ten identyfikator powinien być niepowtarzalny wśród wszystkich kont w projektach Firebase. Jeśli zaimportujesz konto z istniejącym identyfikatorem UID, zostanie ono zastąpione.
2 E-mail Ciąg znaków Opcjonalnie
3 Adres e-mail zweryfikowany Wartość logiczna Opcjonalnie
4 Hasz hasła Ciąg znaków Opcjonalny
Ciąg zakodowany w standardzie base64. W tym polu osoba wywołująca musi mieć rolę Edytujący lub Właściciel.
5 Sól do haseł Ciąg znaków Opcjonalny
Ciąg zakodowany w standardzie base64. W tym polu osoba wywołująca musi mieć rolę Edytujący lub Właściciel.
6 Nazwa Ciąg znaków Opcjonalnie
7 Adres URL zdjęcia Ciąg znaków Opcjonalnie
8 Identyfikator Google Ciąg znaków Opcjonalnie
9 Poczta e-mail Google Ciąg znaków Opcjonalnie
10 Nazwa wyświetlana Google Ciąg znaków Opcjonalnie
11 Adres URL Zdjęć Google Ciąg znaków Opcjonalnie
12 Identyfikator Facebooka Ciąg znaków Opcjonalnie
13 Adres e-mail na Facebooku Ciąg znaków Opcjonalnie
14 Wyświetlana nazwa na Facebooku Ciąg znaków Opcjonalnie
15 URL zdjęcia na Facebooku Ciąg znaków Opcjonalnie
16 Identyfikator Twittera Ciąg znaków Opcjonalnie
17 Adres e-mail na Twitterze Ciąg znaków Opcjonalnie
18 Wyświetlana nazwa na Twitterze Ciąg znaków Opcjonalnie
19 Adres URL zdjęcia na Twitterze Ciąg znaków Opcjonalnie
20 Identyfikator GitHuba Ciąg znaków Opcjonalnie
21 Adres e-mail w serwisie GitHub Ciąg znaków Opcjonalnie
22 Wyświetlana nazwa GitHub Ciąg znaków Opcjonalnie
23 URL zdjęcia na GitHubie Ciąg znaków Opcjonalnie
24 Czas utworzenia konta użytkownika Liczba długa Opcjonalna
sygnatura czasowa systemu Unix w epoce (w milisekundach).
25 Godzina ostatniego logowania Liczba długa Opcjonalna
sygnatura czasowa systemu Unix w epoce (w milisekundach).
26 Numer telefonu Ciąg znaków Opcjonalnie

Jeśli nie określisz wartości opcjonalnej, pamiętaj, aby uwzględnić w niej puste pole. Puste pole może zawierać dowolną liczbę znaków spacji.

Na przykład ten wiersz przedstawia konto użytkownika:

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

Plik JSON konta użytkownika ma taki format:

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

Zastąp PROVIDER_ID jedną z tych wartości:

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