FirexportGuias
Como exportar os usuários do Firebase Authentication
A guia Usuários (Users) do Firebase Authentication lista todas as contas do seu projeto, mas não consegue baixá-las: o único menu dela guarda os parâmetros de hash de senha. Há três formas de tirar seus usuários como arquivo. Qual delas serve depende de para que é o arquivo: uma lista para ler, compartilhar ou enviar e-mails, ou uma mudança para outro projeto.
Atualizado em 7 de outubro de 2026. O Firexport, a extensão do método 1, é nosso. Os métodos 2 e 3 não precisam dele.
A resposta curta
- Uma lista de usuários para uma planilha, agora: exporte-a da guia Usuários (Users) com uma extensão do navegador. Método 1
- Levar usuários para outro projeto, com as senhas: firebase auth:export e depois firebase auth:import. Método 2
- Uma exportação agendada, ou colunas do seu jeito: um script curto com o Admin SDK. Método 3
| 1. Console + extensão | 2. Firebase CLI | 3. Script com Admin SDK | |
|---|---|---|---|
| Configuração | Instalar uma extensão do Chrome | Node.js e a Firebase CLI | Node.js e credenciais do Google Cloud |
| Formatos | CSV com linha de cabeçalho, ou JSON | CSV sem linha de cabeçalho, ou JSON | CSV com linha de cabeçalho (ou o que seu código gravar) |
| Datas e horas | A data do console (ISO 8601 com o Advanced) | Epoch em milissegundos | ISO 8601 |
| Declarações personalizadas | Com o Advanced | Incluídas | Incluídas |
| Hashes de senha | Nunca lidos | Incluídos (papel de Editor ou Proprietário) | Ficam de fora |
1. Exportar do Console do Firebase com o Firexport
No Console do Firebase, Authentication > Usuários (Users) mostra seus usuários em uma tabela, uma página por vez, sem nada para baixá-los. O Firexport é uma extensão gratuita do Chrome que adiciona um botão Exportar a essa tabela.
- Instale o Firexport pela Chrome Web Store.
- No Console do Firebase, abra Authentication e a guia Usuários (Users).
- Clique em Exportar, à direita de Adicionar usuário (Add user). O Firexport percorre todas as páginas da tabela e baixa um único arquivo CSV. Para JSON, abra o menu ⋮ ao lado do botão e escolha Exportar para JSON.

O que vai para o arquivo:
- Na versão gratuita, uma linha por usuário com
uid,identifier,disabled,providers,creationTimeelastSignInTime: a tabela como o console a mostra. As datas ficam no formato do console, sem horário, e os provedores são nomes como Email ou Google. - O Firexport Advanced, o plano pago, grava o registro completo de cada usuário com os nomes do Admin SDK:
email,emailVerified,displayName,phoneNumber,photoURL,providerData,customClaims,multiFactore os horários de criação, de login e do token em ISO 8601 (UTC). - Os nomes das colunas ficam em inglês, seja qual for o idioma do console, então toda exportação tem as mesmas colunas.
Os hashes de senha nunca são lidos, e os dados dos seus usuários ficam no seu navegador: o arquivo é montado ali e não vai para lugar nenhum além dos seus downloads. Não há chave de conta de serviço nem CLI para configurar, porque ele roda na sessão do console em que você já está conectado. Funciona no Chrome e em outros navegadores baseados no Chromium.
Um usuário por vez
Para conferir um único usuário, passe o mouse sobre a linha dele. Um ícone de informações no início das ações da linha abre um cartão com o registro completo: nome de exibição, e-mail verificado, provedores, horários de login e do token, declarações personalizadas e segundos fatores. O ícone de copiar no cartão coloca o usuário na área de transferência como JSON. Os dois são gratuitos.

Exporte seus usuários do Firebase direto do console, sem a CLI nem chave de conta de serviço.
2. Exportar com a Firebase CLI
O comando auth:export da Firebase CLI baixa todas as contas de um projeto para um único arquivo. Ele foi feito para levar usuários a outro projeto com auth:import, então inclui os hashes e salts das senhas. Isso também torna o arquivo uma credencial: mantenha-o longe de drives compartilhados e de e-mail. Os campos de hash e salt exigem uma conta com o papel de Editor ou Proprietário no projeto.
npm install -g firebase-tools
firebase login
firebase auth:export users.json --project your-project-id- O nome do arquivo define o formato:
users.jsonouusers.csv. - O CSV não tem linha de cabeçalho. As colunas vêm em uma ordem fixa: UID, e-mail, e-mail verificado, hash da senha, salt, nome e URL da foto, quatro colunas cada para Google, Facebook, Twitter e GitHub, depois horário de criação, horário do último login, telefone e mais algumas. A referência do auth:export do Google lista todas. Os horários vêm como epoch em milissegundos.
- O JSON mantém os nomes da própria API:
localId,createdAt,lastSignedInAt,providerUserInfoecustomAttributespara as declarações personalizadas (uma string JSON). - Só são exportadas as senhas com hash pelo scrypt do Firebase. Usuários importados com outro algoritmo que não fizeram login desde então saem com os campos de hash e salt vazios.
Para levar os usuários, importe o arquivo no outro projeto com os parâmetros de hash do projeto antigo, que ficam em Authentication > Usuários (Users) > ⋮ > Parâmetros de hash de senha (Password hash parameters). Os usuários mantêm seus UIDs e podem fazer login com a mesma senha.
firebase auth:import users.json --project new-project-id \
--hash-algo=SCRYPT --hash-key=BASE64_SIGNER_KEY --salt-separator=BASE64_SALT_SEPARATOR \
--rounds=ROUNDS --mem-cost=MEM_COST3. Exportar com um script do Admin SDK
Para colunas do seu jeito, ou uma exportação que rode de forma agendada, um script curto em Node.js com o Firebase Admin SDK lista todos os usuários e grava um CSV com linha de cabeçalho. Ele precisa de uma conta que possa ler usuários: um Proprietário ou Editor do projeto, ou o papel Leitor do Firebase Authentication.
- Instale o SDK:
npm install firebase-admin - Faça login para obter credenciais locais:
gcloud auth application-default login. Em um servidor, aponteGOOGLE_APPLICATION_CREDENTIALSpara uma chave de conta de serviço. - Salve o script abaixo como
export-users.mjs, substituayour-project-ide executenode export-users.mjs.
// Usage: node export-users.mjs → writes users.csv
import { writeFileSync } from 'node:fs';
import { initializeApp } from 'firebase-admin/app';
import { getAuth } from 'firebase-admin/auth';
initializeApp({ projectId: 'your-project-id' });
const auth = getAuth();
// listUsers returns at most 1,000 users per call, so follow the page token to the end.
const users = [];
let pageToken;
do {
const page = await auth.listUsers(1000, pageToken);
users.push(...page.users);
pageToken = page.pageToken;
} while (pageToken);
// One row per user. Times become ISO 8601. Password hashes are left out: this is a user list, not a backup.
const iso = (time) => (time ? new Date(time).toISOString() : '');
const rows = users.map((user) => ({
uid: user.uid,
email: user.email,
emailVerified: user.emailVerified,
displayName: user.displayName,
phoneNumber: user.phoneNumber,
disabled: user.disabled,
providers: user.providerData.map((provider) => provider.providerId).join(' '),
creationTime: iso(user.metadata.creationTime),
lastSignInTime: iso(user.metadata.lastSignInTime),
customClaims: user.customClaims ? JSON.stringify(user.customClaims) : '',
}));
// Quote any cell with a comma, a quote or a line break.
function cell(value) {
const text = value === undefined || value === null ? '' : String(value);
return /[",\r\n]/.test(text) ? `"${text.replaceAll('"', '""')}"` : text;
}
const columns = ['uid', 'email', 'emailVerified', 'displayName', 'phoneNumber', 'disabled',
'providers', 'creationTime', 'lastSignInTime', 'customClaims'];
const lines = [columns, ...rows.map((row) => columns.map((column) => row[column]))];
// The byte order mark at the start makes Excel read names in any language correctly.
writeFileSync('users.csv', '' + lines.map((line) => line.map(cell).join(',')).join('\r\n'));
console.log(`Wrote ${rows.length} users to users.csv`);- Se uma chamada falhar porque a API “requires a quota project” (exige um projeto de cota), execute
gcloud auth application-default set-quota-project your-project-ide tente de novo. listUsersretorna os usuários em ordem de UID, não por data de cadastro. Ordene as linhas se precisar dessa ordem.- O SDK só retorna os hashes de senha para uma conta com a permissão
firebaseauth.configs.getHashConfig, e o script os deixa de fora de qualquer forma. Para levar usuários com as senhas, use o método 2.
Perguntas frequentes
O Console do Firebase consegue exportar os usuários do Authentication?
Não. A guia Usuários (Users) tem uma caixa de pesquisa, Adicionar usuário (Add user), um botão de atualizar e um menu cujo único item é Parâmetros de hash de senha (Password hash parameters). Para colocar os usuários em um arquivo, é preciso a Firebase CLI (firebase auth:export), o Admin SDK ou uma extensão do navegador que adicione um botão Exportar a essa guia.
Como obtenho uma lista com os e-mails de todos os usuários do Firebase?
Exporte os usuários e fique com a coluna de e-mail. Na exportação gratuita do Firexport, ela é a coluna identifier, que mostra o mesmo que o console: o e-mail, ou o número de telefone no login por telefone. Em um script do Admin SDK, colete user.email de listUsers.
A exportação inclui as senhas dos usuários?
Nenhum método fornece senhas em texto simples, porque o Firebase nunca as armazena. O firebase auth:export inclui os hashes e salts das senhas, que o firebase auth:import usa para levar os usuários com senhas que continuam funcionando. O Firexport nunca lê hashes, e o Admin SDK só os retorna com uma permissão extra.
Como levo os usuários para outro projeto do Firebase?
Execute firebase auth:export users.json no projeto antigo e depois firebase auth:import users.json no novo, com --hash-algo=SCRYPT e a chave de hash, o separador de salt, as rodadas e o custo de memória dos Parâmetros de hash de senha (Password hash parameters) do projeto antigo. Um arquivo sem hashes, do Firexport ou de um script, obrigaria todo usuário que entra com senha a redefini-la.
Posso abrir a exportação no Excel ou no Google Sheets?
Sim. Todos os métodos aqui gravam CSV, que os dois abrem. O CSV do Firexport e o do script começam com uma marca de ordem de bytes (BOM), então o Excel lê nomes em qualquer idioma. Se os nomes aparecerem com caracteres estranhos em um CSV sem ela, importe com Dados > De Texto/CSV (Data > From Text/CSV) e defina Origem do Arquivo (File Origin) como 65001: Unicode (UTF-8).
