FirexportAnleitungen
Firebase-Authentication-Nutzer exportieren
Der Tab „Nutzer“ von Firebase Authentication listet jedes Konto in Ihrem Projekt auf, kann die Konten aber nicht herunterladen: Sein einziges Menü enthält die Passwort-Hash-Parameter. Es gibt drei Wege, Ihre Nutzer als Datei herauszubekommen. Welcher passt, hängt davon ab, wofür die Datei gedacht ist: eine Liste zum Lesen, Teilen oder für ein Mailing – oder ein Umzug in ein anderes Projekt.
Aktualisiert am 7. Oktober 2026. Firexport, die Erweiterung in Methode 1, ist von uns. Die Methoden 2 und 3 brauchen sie nicht.
Die kurze Antwort
- Eine Nutzerliste für eine Tabellenkalkulation, jetzt sofort: im Tab Nutzer (Users) mit einer Browser-Erweiterung exportieren. Methode 1
- Nutzer in ein anderes Projekt umziehen, samt Passwörtern: firebase auth:export, dann firebase auth:import. Methode 2
- Ein Export nach Zeitplan oder Spalten nach Ihren Vorstellungen: ein kurzes Admin-SDK-Skript. Methode 3
| 1. Console + Erweiterung | 2. Firebase CLI | 3. Admin-SDK-Skript | |
|---|---|---|---|
| Einrichtung | Eine Chrome-Erweiterung installieren | Node.js und die Firebase CLI | Node.js und Google-Cloud-Anmeldedaten |
| Formate | CSV mit Kopfzeile oder JSON | CSV ohne Kopfzeile oder JSON | CSV mit Kopfzeile (oder was Ihr Code schreibt) |
| Zeiten | Das Datum der Console (ISO 8601 mit Advanced) | Epoch-Millisekunden | ISO 8601 |
| Benutzerdefinierte Claims | Mit Advanced | Enthalten | Enthalten |
| Passwort-Hashes | Nie gelesen | Enthalten (Rolle Bearbeiter oder Inhaber) | Weggelassen |
1. Mit Firexport aus der Firebase Console exportieren
In der Firebase Console zeigt Authentication > Nutzer (Users) Ihre Nutzer Seite für Seite in einer Tabelle – aber nichts, womit man sie herunterladen könnte. Firexport ist eine kostenlose Chrome-Erweiterung, die dieser Tabelle einen Exportieren-Button hinzufügt.
- Installieren Sie Firexport aus dem Chrome Web Store.
- Öffnen Sie in der Firebase Console Authentication und den Tab Nutzer (Users).
- Klicken Sie auf Exportieren, rechts neben Nutzer hinzufügen (Add user). Firexport geht alle Seiten der Tabelle durch und lädt eine CSV-Datei herunter. Für JSON öffnen Sie das Menü ⋮ neben dem Button und wählen Als JSON exportieren.

Was in der Datei landet:
- In der kostenlosen Version eine Zeile pro Nutzer mit
uid,identifier,disabled,providers,creationTimeundlastSignInTime: die Tabelle so, wie die Console sie zeigt. Datumsangaben stehen im Format der Console, ohne Uhrzeit, und Anbieter sind Namen wie Email oder Google. - Firexport Advanced, der kostenpflichtige Tarif, schreibt den vollständigen Datensatz jedes Nutzers unter den Namen des Admin SDK:
email,emailVerified,displayName,phoneNumber,photoURL,providerData,customClaims,multiFactorsowie die Erstellungs-, Anmelde- und Token-Zeiten in ISO 8601 (UTC). - Die Spaltennamen sind englisch, egal in welcher Sprache die Console ist – jeder Export hat also dieselben Spalten.
Passwort-Hashes werden nie gelesen, und die Daten Ihrer Nutzer bleiben in Ihrem Browser: Die Datei entsteht dort und geht nirgendwohin außer in Ihre Downloads. Kein Dienstkontoschlüssel und keine CLI einzurichten, denn es arbeitet in der Console-Sitzung, in der Sie schon angemeldet sind. Es läuft in Chrome und anderen Chromium-basierten Browsern.
Einzelne Nutzer
Um einen einzelnen Nutzer zu prüfen, fahren Sie mit der Maus über seine Zeile. Ein Info-Symbol am Anfang der Zeilenaktionen öffnet eine Karte mit dem ganzen Datensatz: Anzeigename, E-Mail bestätigt, Anbieter, Anmelde- und Token-Zeiten, benutzerdefinierte Claims und zweite Faktoren. Das Kopiersymbol auf der Karte legt den Nutzer als JSON in die Zwischenablage. Beides ist kostenlos.

Exportieren Sie Ihre Firebase-Nutzer direkt aus der Console – ohne CLI und ohne Dienstkontoschlüssel.
2. Mit der Firebase CLI exportieren
Der Befehl auth:export der Firebase CLI lädt jedes Konto eines Projekts in eine Datei herunter. Er ist dafür gemacht, Nutzer mit auth:import in ein anderes Projekt umzuziehen, und enthält deshalb Passwort-Hashes und Salts. Damit zählt die Datei aber auch zu den Zugangsdaten: Legen Sie sie nicht auf geteilten Laufwerken ab und verschicken Sie sie nicht per E-Mail. Für die Hash- und Salt-Felder braucht es ein Konto mit der Rolle Bearbeiter oder Inhaber im Projekt.
npm install -g firebase-tools
firebase login
firebase auth:export users.json --project your-project-id- Der Dateiname bestimmt das Format:
users.jsonoderusers.csv. - Die CSV hat keine Kopfzeile. Ihre Spalten kommen in fester Reihenfolge: UID, E-Mail, E-Mail bestätigt, Passwort-Hash, Salt, Name und Foto-URL, je vier Spalten für Google, Facebook, Twitter und GitHub, dann Erstellungszeit, letzte Anmeldung, Telefonnummer und ein paar weitere. Die auth:export-Referenz von Google listet sie auf. Zeiten sind Epoch-Millisekunden.
- Das JSON behält die eigenen Namen der API:
localId,createdAt,lastSignedInAt,providerUserInfoundcustomAttributesfür benutzerdefinierte Claims (ein JSON-String). - Exportiert werden nur Passwörter, die mit dem scrypt von Firebase gehasht sind. Nutzer, die mit einem anderen Algorithmus importiert wurden und sich seitdem nicht angemeldet haben, kommen mit leeren Hash- und Salt-Feldern heraus.
Um die Nutzer umzuziehen, importieren Sie die Datei mit den Hash-Parametern des alten Projekts in das andere Projekt. Sie finden sie unter Authentication > Nutzer (Users) > ⋮ > Passwort-Hash-Parameter (Password hash parameters). Die Nutzer behalten ihre UIDs und können sich mit demselben Passwort anmelden.
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. Mit einem Admin-SDK-Skript exportieren
Für Spalten nach Ihren Vorstellungen oder einen Export nach Zeitplan listet ein kurzes Node.js-Skript mit dem Firebase Admin SDK alle Nutzer auf und schreibt eine CSV mit Kopfzeile. Es braucht ein Konto, das Nutzer lesen darf: einen Projekt-Inhaber oder -Bearbeiter oder die Rolle Firebase Authentication-Betrachter.
- SDK installieren:
npm install firebase-admin - Für lokale Anmeldedaten anmelden:
gcloud auth application-default login. Auf einem Server lassen Sie stattdessenGOOGLE_APPLICATION_CREDENTIALSauf einen Dienstkontoschlüssel zeigen. - Speichern Sie das Skript unten als
export-users.mjs, ersetzen Sieyour-project-idund führen Sienode export-users.mjsaus.
// 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`);- Wenn ein Aufruf fehlschlägt, weil die API ein Kontingentprojekt verlangt („requires a quota project“), führen Sie
gcloud auth application-default set-quota-project your-project-idaus und versuchen es erneut. listUsersliefert die Nutzer in UID-Reihenfolge, nicht nach Registrierungsdatum. Sortieren Sie die Zeilen, wenn Sie diese Reihenfolge brauchen.- Das SDK liefert Passwort-Hashes nur an ein Konto mit der Berechtigung
firebaseauth.configs.getHashConfig, und das Skript lässt sie so oder so weg. Um Nutzer mit ihren Passwörtern umzuziehen, nehmen Sie Methode 2.
FAQ
Kann die Firebase Console Authentication-Nutzer exportieren?
Nein. Der Tab Nutzer (Users) hat ein Suchfeld, einen Button Nutzer hinzufügen (Add user), einen Aktualisieren-Button und ein Menü, dessen einziger Eintrag Passwort-Hash-Parameter (Password hash parameters) ist. Um Nutzer in eine Datei zu bekommen, braucht es die Firebase CLI (firebase auth:export), das Admin SDK oder eine Browser-Erweiterung, die diesem Tab einen Exportieren-Button hinzufügt.
Wie bekomme ich eine Liste aller Nutzer-E-Mails aus Firebase?
Exportieren Sie die Nutzer und behalten Sie die E-Mail-Spalte. Im kostenlosen Export von Firexport ist das die Spalte identifier, die zeigt, was die Console zeigt: die E-Mail-Adresse oder bei Anmeldung per Telefon die Telefonnummer. In einem Admin-SDK-Skript sammeln Sie user.email aus listUsers.
Enthält der Export die Passwörter der Nutzer?
Keine Methode liefert Passwörter im Klartext, weil Firebase sie nie speichert. firebase auth:export enthält die Passwort-Hashes und Salts, mit denen firebase auth:import Nutzer samt funktionierenden Passwörtern umzieht. Firexport liest nie Hashes, und das Admin SDK liefert sie nur mit einer zusätzlichen Berechtigung.
Wie ziehe ich Nutzer in ein anderes Firebase-Projekt um?
Führen Sie firebase auth:export users.json im alten Projekt aus, dann firebase auth:import users.json im neuen – mit --hash-algo=SCRYPT sowie Hash-Schlüssel, Salt-Trennzeichen, Runden und Speicherkosten aus den Passwort-Hash-Parametern (Password hash parameters) des alten Projekts. Mit einer Datei ohne Hashes, aus Firexport oder einem Skript, müssten alle Nutzer mit Passwort-Anmeldung ihr Passwort zurücksetzen.
Kann ich den Export in Excel oder Google Tabellen öffnen?
Ja. Jede Methode hier schreibt CSV, und beide öffnen das. Die CSV von Firexport und die des Skripts beginnen mit einem Byte-Order-Mark, sodass Excel Namen in jeder Sprache richtig liest. Wenn Namen in einer CSV ohne BOM verstümmelt erscheinen, importieren Sie sie über Daten > Aus Text/CSV (Data > From Text/CSV) und stellen Sie Dateiursprung (File Origin) auf 65001: Unicode (UTF-8).
