React - данные для заказа, поступающие из FireBase - PullRequest
3 голосов
/ 18 июня 2020

Следующий компонент подключается к коллекции FireBase, называемой FlashCards, получает данные с помощью функции get() и затем сохраняет их внутри карт с помощью setCards.

import React, { useState, useEffect } from 'react';
import { db } from '../firebase';

const List = () => {
  const [cards, setCards] = useState([]);

  useEffect(() => {
    const fetchData = async () => {
      const data = await db
        .collection('FlashCards')
        .get()
      setCards(data.docs.map((doc) => ({ ...doc.data(), id: doc.id })));
    };
    fetchData();
  }, []);

  return (
    <>
      <ul>
        {cards.map((card) => (
          <li key={card.id}>
            {card.customId}
            {card.originalText}
          </li>
        ))}
      </ul>
    </>
  );
};

export default List;

Каждый документ в коллекции FlashCards имеет поле с именем customId . Я хочу упорядочить свои данные по этому customId.

Для этого я попробовал следующее:

useEffect(() => {
    const fetchData = async () => {
      const data = await db
        .collection('FlashCards')
        .get()
        .orderBy('customId');
      setCards(data.docs.map((doc) => ({ ...doc.data(), id: doc.id })));
    };
    fetchData();
  }, []);

Но когда я это сделаю, я получаю следующую ошибку:

orderBy не является функцией

Как заказать данные по customId?

1 Ответ

1 голос
/ 18 июня 2020

Привет, попробуйте переключить «orderBy» и «get»

...