Получение коллекций Firestore в JavaScript: методы и примеры

Чтобы создать массив, содержащий список коллекций внутри Firestore, и экспортировать его, вы можете использовать Firebase Admin SDK в среде Node.js. Вот пример кода, демонстрирующий различные методы достижения этой цели:

const admin = require('firebase-admin');
// Initialize the Firebase Admin SDK
admin.initializeApp({
  credential: admin.credential.applicationDefault(),
  projectId: 'your-project-id'
});
// Get a reference to the Firestore database
const db = admin.firestore();
// Method 1: Using the listCollections() method
const getCollectionsUsingListCollections = async () => {
  const collections = await db.listCollections();
  const collectionNames = collections.map((collection) => collection.id);
  return collectionNames;
};
// Method 2: Using the listDocuments() method
const getCollectionsUsingListDocuments = async () => {
  const rootCollections = await db.listCollections();
  const collectionNames = [];
  for (const collectionRef of rootCollections) {
    const snapshot = await collectionRef.listDocuments();
    collectionNames.push(snapshot.parent.id);
  }
  return collectionNames;
};
// Method 3: Using the getCollections() method (deprecated)
const getCollectionsUsingGetCollections = async () => {
  const collections = await db.getCollections();
  const collectionNames = collections.map((collection) => collection.id);
  return collectionNames;
};
// Export the array of collection names
const exportCollections = async () => {
  const collectionNames = await getCollectionsUsingListCollections();
  // You can export the collection names in any desired format (e.g., JSON, CSV, etc.)
  console.log(collectionNames);
};
// Call the exportCollections function to export the collection names
exportCollections();

В этом коде мы используем три разных метода для получения списка коллекций внутри Firestore:

  1. Метод 1: listCollections(). Этот метод возвращает список всех коллекций верхнего уровня в Firestore. Мы перебираем коллекции и извлекаем их идентификаторы.

  2. Метод 2: listDocuments(). Этот метод используется для получения списка всех документов в данной коллекции. Мы используем его в сочетании с listCollections()для получения идентификаторов родительской коллекции.

  3. Метод 3: getCollections()(устаревший). Этот метод использовался в более старых версиях Firebase Admin SDK. Он возвращает список всех коллекций верхнего уровня, похожих на listCollections().

Обратите внимание, что метод 3 (getCollections()) устарел, и рекомендуется использовать либо метод 1 (listCollections()), либо метод 2 (11).

Для экспорта массива названий коллекций вы можете изменить функцию exportCollections()в соответствии со своими потребностями. Код примера просто записывает имена коллекций в консоль.

Теперь перейдем к статье в блоге.

Блог-методы для получения коллекций Firestore в JavaScript

Введение

Firestore, база данных документов NoSQL, предоставляемая Firebase, позволяет разработчикам организовывать данные в коллекции. В этой статье мы рассмотрим различные методы получения списка коллекций внутри Firestore с помощью JavaScript.

Метод 1: использование метода listCollections()

Метод listCollections() – это простой способ получить список всех коллекций верхнего уровня в Firestore. Вот пример фрагмента кода, демонстрирующий его использование:

// Code snippet from Method 1
const collections = await db.listCollections();
const collectionNames = collections.map((collection) => collection.id);

Метод 2: использование метода listDocuments()

Чтобы получить идентификаторы родительской коллекции, мы можем объединить метод listDocuments()с listCollections(). Вот пример фрагмента кода:

// Code snippet from Method 2
const rootCollections = await db.listCollections();
const collectionNames = [];
for (const collectionRef of rootCollections) {
  const snapshot = await collectionRef.listDocuments();
  collectionNames.push(snapshot.parent.id);
}

Метод 3: использование метода getCollections() (устарело)

Хотя этот метод устарел в новых версиях Firebase Admin SDK, его все равно можно использовать в старых проектах. Вот пример фрагмента кода:

// Code snippet from Method 3
const collections = await db.getCollections();
const collectionNames = collections.map((collection) => collection.id);

Заключение

Получение списка коллекций внутри Firestore необходимо для выполнения различных административных задач. В этой статье мы рассмотрели три различных метода достижения этой цели с помощью JavaScript. Метод 1 (listCollections()) и метод 2 (listDocuments()) являются рекомендуемыми, а метод 3 (getCollections()) устарел.

Используя эти методы, вы можете эффективно получать имена коллекций и в дальнейшем обрабатывать их в соответствии с вашими требованиями.