autenticação:importar e autenticação:exportar

  • O comando auth:import importa contas de usuário para projetos do Firebase.

  • O comando auth:export exporta contas de usuário para arquivos JSON e CSV.

Parâmetros de hash de senha

Para determinar os parâmetros de hash de senha usados ​​em seu projeto, navegue até a seção Autenticação > Usuários do console do Firebase e clique no ícone de três pontos acima da lista de usuários. Você verá uma caixa de diálogo com uma lista de parâmetros de hash de senha que você pode usar com os comandos auth:import e auth:export :

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

Esses valores são sensíveis, portanto armazene-os com cuidado. A maioria dos projetos do Firebase usa SCRYPT , uma versão modificada do algoritmo de hashing scrypt , que é o padrão para novos projetos.

autenticação: importação

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
Parâmetros
arquivo_da_conta O arquivo CSV ou JSON que contém as contas de usuário a serem importadas. Consulte Formato de arquivo .
hash-algo O algoritmo usado para fazer hash de senhas no arquivo da conta do usuário.
Necessário para importar contas com campos de senha. Um dos seguintes valores: BCRYPT , SCRYPT , STANDARD_SCRYPT , HMAC_SHA512 , HMAC_SHA256 , HMAC_SHA1 , HMAC_MD5 , MD5 , SHA512 , SHA256 , SHA1 , PBKDF_SHA1 , PBKDF2_SHA256 .
chave de hash Chave usada para hash de senhas.
Obrigatório para os algoritmos SCRYPT , HMAC_SHA512 , HMAC_SHA256 , HMAC_SHA1 e HMAC_MD5 . Este argumento deve ser formatado como uma string codificada em base64 .
separador de sal Separador de salt que será anexado ao salt ao verificar a senha.
Opcional para todos os algoritmos. Este argumento deve ser formatado como uma string codificada em base64 .
rodadas O número de rodadas usadas para hash de senhas.
Obrigatório para os algoritmos SCRYPT , MD5 , SHA512 , SHA256 , SHA1 , PBKDF_SHA1 e PBKDF2_SHA256 .
custo mem Este parâmetro representa o custo de memória necessário para o algoritmo SCRYPT OU o custo de CPU/memória necessário para o algoritmo STANDARD_SCRYPT .
paralelização A paralelização do algoritmo de hash.
Obrigatório para o algoritmo STANDARD_SCRYPT .
tamanho do bloco O tamanho do bloco (normalmente é 8) do algoritmo de hash.
Obrigatório para o algoritmo STANDARD_SCRYPT .
dk-len O comprimento da chave derivada do algoritmo de hash.
Obrigatório para o algoritmo STANDARD_SCRYPT .
ordem de entrada de hash A ordem da senha e do salt.
Os valores possíveis são SALT_FIRST e PASSWORD_FIRST . Este sinalizador se aplica a SHA512 , SHA256 , SHA1 , MD5 , HMAC_SHA512 , HMAC_SHA256 , HMAC_SHA1 e HMAC_MD5 .

autorização:exportar

firebase auth:export ACCOUNT_FILE --format=FILE_FORMAT
Parâmetros
arquivo_da_conta O arquivo CSV ou JSON para o qual exportar. Consulte Formato de arquivo .
formato de arquivo Opcional. O formato do arquivo a ser exportado: CSV ou JSON.
Se o nome do arquivo especificado no parâmetro account_file terminar com .csv ou .json , esse formato será usado e esse parâmetro será ignorado.

Formato de arquivo

O arquivo da conta do usuário pode ser formatado como CSV ou JSON .

CSV

Um arquivo CSV de conta de usuário tem o seguinte formato:

Número da coluna Descrição do campo Tipo de campo Comentários
1 UID Corda Obrigatório
Esse ID deve ser exclusivo entre todas as contas nos seus projetos do Firebase. Se você importar uma conta com um UID já existente, a conta será substituída.
2 E-mail Corda Opcional
3 email verificado boleano Opcional
4 Hash de senha Corda Opcional
Uma string codificada em base64. Este campo exige que o chamador tenha a função de Editor ou Proprietário .
5 Senha Sal Corda Opcional
Uma string codificada em base64. Este campo exige que o chamador tenha a função de Editor ou Proprietário .
6 Nome Corda Opcional
7 URL da foto Corda Opcional
8 ID do Google Corda Opcional
9 E-mail do Google Corda Opcional
10 Nome de exibição do Google Corda Opcional
11 URL da foto do Google Corda Opcional
12 ID do Facebook Corda Opcional
13 E-mail do Facebook Corda Opcional
14 Nome de exibição do Facebook Corda Opcional
15 URL da foto do Facebook Corda Opcional
16 Código do Twitter Corda Opcional
17 E-mail do Twitter Corda Opcional
18 Nome de exibição do Twitter Corda Opcional
19 URL da foto do Twitter Corda Opcional
20 Código do GitHub Corda Opcional
21 E-mail GitHub Corda Opcional
22 Nome de exibição do GitHub Corda Opcional
23 URL da foto do GitHub Corda Opcional
24 Hora de criação do usuário Longo Opcional
Epoch Unix Timestamp em milissegundos.
25 Horário do último login Longo Opcional
Epoch Unix Timestamp em milissegundos.
26 Número de telefone Corda Opcional

Se você deixar um valor opcional não especificado, certifique-se de incluir ainda um campo vazio para o valor. Um campo vazio pode ter qualquer número de caracteres de espaço.

Por exemplo, a linha a seguir representa uma conta de usuário:

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

Um arquivo de conta de usuário JSON tem o seguinte formato:

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

Substitua PROVIDER_ID por um dos seguintes valores:

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