我确定这是很普遍的事情,但似乎无法弄清楚。每个用户在Firestore中都有一个“ books”数组,这就是我希望在Flatlist中返回的内容,我在哪里出错?使用Firebase的第一天,所以我很确定它是基本的东西。谢谢:)
<FlatList
data={() => { db.collection('users').doc(userEmail).data() }}
numColumns={2}
ListEmptyComponent={
<View style={styles.flatListEmpty}>
<Text style={{ fontWeight: 'bold' }}>Add Books Below</Text>
</View>
}
renderItem={({ item }) => (
<View style={styles.flatListStyle}>
<Text>book</Text>
</View>
)}
/>
然后是数据库:
答案 0 :(得分:2)
问题是对firebase的查询是异步操作,因此您需要解决该操作,然后将结果存储到组件状态并将该状态分配给平面列表。示例:
const Component = () => {
const [data, setData] = useState();
const getData = async () => {
const snapshot = await db.collection('users').doc(userEmail).get()
setData(snapshot.data())
}
useEffect(() => {
getData()
}, [])
return (
<FlatList
data={data.books}
numColumns={2}
ListEmptyComponent={
<View style={styles.flatListEmpty}>
<Text style={{ fontWeight: 'bold' }}>Add Books Below</Text>
</View>
}
renderItem={({ item }) => (
<View style={styles.flatListStyle}>
<Text>book</Text>
</View>
)}
/>
)
}