Firestore волнуется - PullRequest
       3

Firestore волнуется

2 голосов
/ 21 мая 2019

Я только что открыл свой проект в другом домене (рабочий URL), и когда я открыл сетевые запросы, я увидел это:

https://i.imgur.com/NxgTmIf.mp4

Это заняло вечность (8 минут или больше.) и мой процессор был чертовски горячим, что я сделал не так?

Мое приложение довольно простое, я подозреваю, что корень этого блока кода:

  const [items, setItems] = useState([]);

  const publish = async () => {
    const batch = firestore.batch();

    items.forEach(({ id }, index) => {
      batch.update(firestore.collection('v1').doc(id), { '#': index });
    });

    await batch.commit();
  };

  const onCompletion = querySnapshot => {
    const arr = [];

    querySnapshot.forEach(document => {
      const { vid: { id: vid }, '#': index } = document.data();

      const { id } = document;

      arr.push({ id, vid, index });
    });

    setItems(arr);
  };

  useEffect(() => {
    const unsubscribe = firestore
      .collection('v1')
      .orderBy('#')
      .onSnapshot(onCompletion);

    return () => {
      unsubscribe();
    };
  }, []);

  useEffect(() => { publish(); }, [items]);

  const handleSortEnd = ({ oldIndex, newIndex }) => {
    if (oldIndex === newIndex) {
      return;
    }

    setItems(arrayMove(items, oldIndex, newIndex));
  };

В основномдля этого нужно загрузить список видео из плейлиста в коллекцию пожарного магазина, а затем после того, как пользователь добавит новое видео или снова переместится вверх / вниз, сохранит.

Любые подсказки?

Редактировать: послеэто безумие приложение делает несколько запросов и работает как положено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...