我最近正在练习 React Native,并开发了一个附加到 Firebase 的登录表单。我正在尝试从数据库中获取用户名并在屏幕上打印登录用户的名称。
这是我的代码:
constructor() {
super();
this.state = {
name: ''
};
}
handleUser = () => {
const db = firebase.firestore();
db.collection('users').doc('name').get()
.then(snapshot => {
snapshot.forEach(doc => {
const data = doc.data();
console.log(doc.id, data);
this.setState({
data: doc.data,
})
});
})
.catch(err => {
console.log('Error getting documents', err);
});
}
<View style={styles.container}>
<Image
style={styles.background}
source={require('../assets/Rectangle121.png')}
/>
<TouchableOpacity style={{position:"absolute", top:'9%', borderBottomColor:'black', borderRadius:5, alignItems:'center', justifyContent:'center' }} onPress={() => {this.handleUser(this.state.name)}} >
<Image source={require('../assets/Rectangle204.png')} />
</View>
</TouchableOpacity>
错误是:
Error getting documents [TypeError: undefined is not a function (near '...snapshot.forEach...')]
你有什么建议吗?预先感谢您的帮助
最佳答案
在使用 foreach
之前确保 var snapshot
是一个可迭代对象并且与 undefined 不同
关于javascript - 获取文档时出错 [TypeError : undefined is not a function (near '...snapshot.forEach...' )],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58711757/