auth:import i auth:export

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

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

Parametry hasza hasła

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

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, zmodyfikowaną wersję algorytmu szyfrowania scrypt, co 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 do importowania kont 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ótu Klucz używany do haszowania haseł.
Wymagane w przypadku SCRYPT, HMAC_SHA512, HMAC_SHA256, Algorytmy HMAC_SHA1 i HMAC_MD5. Ten argument musi być w formacie zakodowanym w formacie base64 ciągu znaków.
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 zakodowany w formacie base64.
rundy Liczba rund używanych do haszowania haseł.
Wymagane w przypadku SCRYPT, MD5, SHA512, SHA256, SHA1, PBKDF_SHA1 i Algorytmy usługi PBKDF2_SHA256.
mem-cost Ten parametr reprezentuje albo koszt pamięci wymagany przez algorytm SCRYPT LUB koszt procesora/pamięci wymaganego dla algorytm STANDARD_SCRYPT.
równoległość Równoległość algorytmu haszowania.
Wymagane w przypadku algorytmu STANDARD_SCRYPT.
rozmiar blokowy Rozmiar bloku (zwykle 8) algorytmu haszowania.
Wymagane w przypadku algorytmu STANDARD_SCRYPT.
dk-len Pochodna długość klucza algorytmu szyfrowania.
Wymagane 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 obowiązuje 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 plik .
format_pliku Opcjonalne. Format pliku do wyeksportowania: CSV lub JSON.
Jeśli nazwa pliku określona w parametrze account_file kończy się z wartością .csv lub .json, używany jest ten format i ten 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 zawsze umieścić parametr puste pole na wartość. Puste pole może zawierać dowolną liczbę spacji znaków.

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