Основные методы получения только идентификаторов документов в Firestore: практическое руководство

Firestore – это популярная база данных документов NoSQL, предоставляемая Google Cloud Platform. При работе с Firestore могут быть случаи, когда вам нужно получить только идентификаторы документов без получения всех данных документа. В этой статье мы рассмотрим несколько методов эффективного выполнения этой задачи. Итак, хватайте чашечку кофе и приступайте!

Метод 1. Запрос идентификаторов документов с использованием select():

const db = firebase.firestore();
const collectionRef = db.collection('your_collection');
collectionRef.select().get().then((querySnapshot) => {
  const docIds = querySnapshot.docs.map((doc) => doc.id);
  console.log(docIds); // Array of document IDs
});

Метод 2: использование FieldPath.documentId():

const db = firebase.firestore();
const collectionRef = db.collection('your_collection');
collectionRef.select(firebase.firestore.FieldPath.documentId()).get().then((querySnapshot) => {
  const docIds = querySnapshot.docs.map((doc) => doc.id);
  console.log(docIds); // Array of document IDs
});

Метод 3. Использование listDocuments()для получения идентификаторов документов:

const db = firebase.firestore();
const collectionRef = db.collection('your_collection');
collectionRef.listDocuments().then((documents) => {
  const docIds = documents.map((doc) => doc.id);
  console.log(docIds); // Array of document IDs
});

Метод 4. Оптимизация с помощью FieldValue.delete():

const db = firebase.firestore();
const collectionRef = db.collection('your_collection');
collectionRef.get().then((querySnapshot) => {
  const docIds = querySnapshot.docs.map((doc) => {
    const data = doc.data();
    Object.keys(data).forEach((field) => {
      if (data[field] === firebase.firestore.FieldValue.delete()) {
        delete data[field];
      }
    });
    return { id: doc.id, ...data };
  });
  console.log(docIds); // Array of document IDs
});

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