Настройка счетчика в документе, а затем получение его с помощью Firestore: будет ли это нормально или будет слишком дорого?

В коллекции orders я создал документ с именем counts, в котором будут храниться счетчики статуса заказов:

Настройка счетчика в документе, а затем получение его с помощью Firestore: будет ли это нормально или будет слишком дорого?

Затем я создал функцию для увеличения статуса с помощью «доставлено».

      async function updateData() {
 
      const docRef = doc(db, "orders", "count");
      await updateDoc(docRef, {
        [`deliveredOrders`]: increment(1),
      });

  }

А затем, чтобы отобразить это:

 useEffect(async () => {
    const docRef = doc(db, "orders", "counts");
    const docSnap = await getDoc(docRef);

    if (docSnap.exists()) {
      console.info("Document data:", docSnap.data());
    } else {
      // doc.data() will be undefined in this case
      console.info("No such document!");
    }
  }, []);
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
25
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Да, это один из способов сделать это, я полагаю, «дорогой», это зависит от вас и от того, сколько звонков вы можете получить, поскольку я знаю, что в Firestore есть ограниченное количество бесплатных звонков для документов.

Другое дело, что вы не должны, и я повторяю, не должны делать useEffect асинхронным, лучшим и правильным способом выполнения асинхронного кода внутри useEffect было бы объявить его внутри, а затем запустить, как показано ниже.

useEffect(() => { 
    const AsyncExample = async () => { 
      // async code in here 
    }
    AsyncExample() 
}, [])

Другие вопросы по теме