- Команда - 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. | 
| распараллеливание | Распараллеливание алгоритма хеширования. Требуется для алгоритма STANDARD_SCRYPT. | 
| размер блока | Размер блока (обычно 8) алгоритма хеширования. Требуется для алгоритма STANDARD_SCRYPT. | 
| Дк-Лен | Полученная длина ключа алгоритма хеширования. Требуется для алгоритма 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 или JSON .
CSV-файл
Файл учетной записи пользователя CSV имеет следующий формат:
| Номер столбца | Описание поля | Тип поля | Комментарии | 
|---|---|---|---|
| 1 | UID | Нить | Необходимый Этот идентификатор должен быть уникальным среди всех учетных записей в ваших проектах Firebase. Если вы импортируете учетную запись с уже существующим UID, учетная запись будет перезаписана. | 
| 2 | Электронная почта | Нить | Необязательный | 
| 3 | Электронная почта проверена | логическое значение | Необязательный | 
| 4 | Хэш пароля | Нить | Необязательный Строка в кодировке Base64. Это поле требует, чтобы вызывающий абонент имел роль редактора или владельца . | 
| 5 | Соль для пароля | Нить | Необязательный Строка в кодировке Base64. Это поле требует, чтобы вызывающий абонент имел роль редактора или владельца . | 
| 6 | Имя | Нить | Необязательный | 
| 7 | URL-адрес фотографии | Нить | Необязательный | 
| 8 | Google ID | Нить | Необязательный | 
| 9 | Электронная почта Google | Нить | Необязательный | 
| 10 | Отображаемое имя Google | Нить | Необязательный | 
| 11 | URL-адрес Google Фото | Нить | Необязательный | 
| 12 | Идентификатор Facebook | Нить | Необязательный | 
| 13 | Электронная почта Facebook | Нить | Необязательный | 
| 14 | Отображаемое имя Facebook | Нить | Необязательный | 
| 15 | URL-адрес фотографии Facebook | Нить | Необязательный | 
| 16 | Идентификатор Твиттера | Нить | Необязательный | 
| 17 | Электронная почта Твиттера | Нить | Необязательный | 
| 18 | Отображаемое имя в Твиттере | Нить | Необязательный | 
| 19 | URL-адрес фотографии в Твиттере | Нить | Необязательный | 
| 20 | Идентификатор GitHub | Нить | Необязательный | 
| 21 | Электронная почта GitHub | Нить | Необязательный | 
| 22 | Отображаемое имя GitHub | Нить | Необязательный | 
| 23 | URL-адрес фотографии 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