Как выгрузить 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 скрипт: полный контроль, бесплатно, но нужно писать код.

    Часто задаваемые вопросы

    Часто задаваемые вопросы