Как выгрузить Firebase Firestore в JSON
Firebase Firestore - гибкая NoSQL база данных, но у неё нет встроенной кнопки «Скачать всё в JSON». Однако экспорт коллекций возможен несколькими способами. В этой статье разберём три надёжных метода: через веб-консоль Firebase, утилиту gcloud и скрипт на Node.js. Выберите подходящий под ваш проект.
Способ 1: Экспорт через консоль Firebase (для небольших коллекций)
Этот метод подходит, если нужно выгрузить до 5000 документов. Откройте Firebase Console, перейдите в раздел Firestore Database. Выберите коллекцию, нажмите на три точки справа от её названия и выберите Export Collection. Система предложит сохранить данные в формате JSON. Минус - при большом объёме данных браузер может зависнуть.
Способ 2: Экспорт через gcloud CLI (для больших баз)
Если у вас установлен Google Cloud SDK, используйте команду gcloud firestore export. Она выгружает данные в Cloud Storage (бакет GCS). Пример команды:
gcloud firestore export gs://your-bucket-name/export-pathПосле завершения экспорта вы получите файлы в формате LevelDB, а не JSON. Чтобы конвертировать их, запустите Dataflow или напишите скрипт для парсинга. Этот способ оптимален для продакшен-баз с миллионами документов.
Способ 3: Экспорт через Node.js скрипт (гибкий и бесплатный)
Для точного контроля над структурой JSON используйте Firebase Admin SDK в Node.js. Установите зависимости:
npm install firebase-adminСоздайте скрипт export.js:
const admin = require('firebase-admin');
const serviceAccount = require('./serviceAccountKey.json');
admin.initializeApp({ credential: admin.credential.cert(serviceAccount) });
const db = admin.firestore();
async function exportCollection(collectionPath) {
const snapshot = await db.collection(collectionPath).get();
const data = {};
snapshot.forEach(doc => { data[doc.id] = doc.data(); });
return data;
}
exportCollection('users').then(data => {
console.log(JSON.stringify(data, null, 2));
});Запустите node export.js > firestore_data.json. Скрипт выгрузит все документы коллекции в читаемый JSON. Вы можете добавить фильтры, пагинацию или исключить служебные поля.
Сравнение методов экспорта Firestore
- Консоль Firebase: быстро, без кода, но лимит 5000 документов.
- gcloud CLI: подходит для больших данных, но требует Cloud Storage и конвертации.
- Node.js скрипт: полный контроль, бесплатно, но нужно писать код.