Как получить данные в Firebase Firestore из ссылочного типа данных в React Native - PullRequest
0 голосов
/ 01 августа 2020

Здравствуйте, у меня есть коллекция под названием Meal. В этой коллекции я использовал ссылку на тип данных, чтобы связать другую коллекцию под названием Ingredient. Теперь я пытаюсь получить ингредиенты для c определенной еды.

Это мой код:

function Meal() {
  const [loading, setLoading] = useState(true); // Set loading to true on component mount
  const [meal, setMeal] = useState([]); // Initial empty array of meal

  useEffect(() => {
    const subscriber = firestore()
      .collection('Meal')
      .onSnapshot((querySnapshot) => {
        const meal = [];
        querySnapshot.forEach(documentSnapshot => {
          meal.push({
            ...documentSnapshot.data(),
            key: documentSnapshot.id,
        });
      });
      setMeal(meal);
      setLoading(false);
    });


    // Unsubscribe from events when no longer in use
    return () => subscriber();
    
  }, []);

  if (loading) {
    return <ActivityIndicator />;
  }


  return (
    <List
      style={styles.container}
      contentContainerStyle={styles.contentContainer}
      data={meal}
      renderItem={({ item }) => (
        <Card style={styles.item}>
          <Text style={styles.title}> {item.Name}  </Text>
          <Layout>
            <Image
              style={{ height: 128, borderRadius: 5, borderWidth: 2, borderColor: 'black', marginHorizontal: -20 }}
              source={{ uri: item.srcImage}}
            />
          </Layout>
          <Text> {item.Ingredient[0].id} </Text>    
        </Card>
      )}
    />
  );
}

Ключевые слова item.Ingredient[0].id и ìtem.Ingredient[0].path работают правильно, но я не могу получить информацию, хранящуюся в коллекции Ingredient. Нужен ли мне еще один querySnapshot?

1 Ответ

1 голос
/ 01 августа 2020

Нужен ли мне еще один querySnapshot?

Если вы хотите прочитать документ из второй коллекции, потребуется второй запрос. В Firestore нет операций типа «соединение», и запросы не будут автоматически следовать ссылкам.

...