簡體   English   中英

React Native Firebase Firestore 數據未正確獲取

[英]React Native Firebase Firestore data not fetching properly

我只想獲取我在我的應用程序中調用的數據,它工作得很好,但是為什么我會得到所有這些不必要的部分,如何刪除它們,感謝您的支持。 請檢查數據庫圖像並顯示 output 圖像如何顯示。 我不想要那些我標記紅線的部分,因為我沒有在我的代碼中調用它們。 是 FlatList 問題還是 Firebase 問題? 在此處輸入圖像描述 在此處輸入圖像描述

import React, { useState, useEffect } from 'react';
import { ActivityIndicator, FlatList, View, Text } from 'react-native';
import {firebase} from '../config';

const Testing = ({ navigation }) =>{
  const [loading, setLoading] = useState(true); // Set loading to true on component mount
  const [users, setUsers] = useState([]);
  useEffect(() => {
    const subscriber = firebase.firestore()
      .collection('testing')
      .onSnapshot(querySnapshot => {
        const users = [];
  
        querySnapshot.forEach(documentSnapshot => {
          users.push({
            ...documentSnapshot.data(),
            key: documentSnapshot.id,
          });
        });
  
        setUsers(users);
        setLoading(false);
      });
  
    // Unsubscribe from events when no longer in use
    return () => subscriber();
  }, []);

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

  return (
    <FlatList
      data={users}
      renderItem={({ item }) => (
        <View style={{ height: 50, flex: 1, alignItems: 'center', justifyContent: 'center' }}>
          <Text>ID: {item.One}</Text>
          <Text>Name: {item.five}</Text>
        </View>
      )}
    />
  );}   
export default Testing;

看起來您的后端數據不完整或“可選”。 如果您不想渲染空字段,您可以有條件地渲染它們。

對於缺少這兩個屬性的users數據,您可以過濾data屬性。

例子:

<FlatList
  data={users.filter(({ One, five }) => One || five)}
  renderItem={({ item }) => (
    <View style={{ .... }}>
      {item.One && <Text>ID: {item.One}</Text>}
      {item.five && <Text>Name: {item.five}</Text>}
    </View>
  )}
/>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM