javascript - 通过用户 id 获取 firestore 文档
问题描述
我正在尝试从我的“请求”集合中获取文档。请求uid与当前登录用户相同,在我获得要显示的数据后,但似乎没有收到文件,这是我所做的,this.state.requests
是空的。
constructor() {
this.state={
requests:[]
}
}
componentDidMount(){
this.props.fetchUser();
this.fetchRequests();
}
fetchRequests(){
this.subscriber = firebase.firestore()
.collection("requests").doc(firebase.auth().currentUser.uid).get().then(docs => {
let requests = []
docs.forEach(doc => {
requests.push(doc.data())
})
this.setState({requests})
})
}
deleteData(){
firebase.firestore().collection("requests")
.doc(firebase.auth().currentUser.uid).delete().catch
((error) => {
alert(error)
console.log(error)})
Actions.Home();
}
buildPanels() {
if (this.state.requests.length !== 0) {
return this.state.requests.map((req, idx) => {
return <View key={idx} style={styles.panel}>
<View style={{flex: 1}}>
<View style={styles.panelRow}>
<Text style={styles.panelText}>Name</Text>
<Text style={styles.panelText}>{req.name}</Text>
</View>
<View style={styles.panelRow}>
<Text style={styles.panelText}>Blood Type</Text>
<Text style={{flex: 0.5}}>{req.golDarah}</Text>
</View>
<TouchableOpacity onPress={this.deleteData}>
<Text style={{color:color.red}}>End Request</Text>
</TouchableOpacity>
</View>
</View>
</View>
</View>
});
}
else{
return <View>
<Text style={{fontSize: fontSize.regular + 1, color: color.red}}>you dont have request</Text>
</View>
}
}
render(){
return(
{this.buildPanels()}
)
}
解决方案
推荐阅读
- grep - 在多个目录/子目录中使用 grep 并过滤掉结果?
- c++ - 在 C++20 之前将 malloc 用于 int 未定义的行为
- async-await - 意外的承诺
等待使用 axios 返回 - python - AWS python lambda - 在 lambda 中导入模块与从本地项目中导入模块的区别
- docker - “docker build” 只需要 1 个参数
- python - 增加 plotly choropleth 窗口的大小
- r - 我正在尝试运行 Anderson Darling 测试,并且这种情况一直在发生(见屏幕截图)。我该如何解决这个问题?
- javascript - 仅在此范围内更改类
- python - web scraping HTML table
- azure-data-factory - Azure 数据工厂中每月的工作日触发器/计划