javascript - 获取文档时出错 [TypeError : undefined is not a function (near '...snapshot.forEach...' )]

标签 javascript android react-native android-studio

我最近正在练习 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/

相关文章:

javascript - 经过身份验证的用户的 Angular ui 路由,即使初始化为 false,变量也显示未定义

javascript - Rails 使 flash[] 在 Javascript 重新加载时显示

javascript - Angular 2在字符串化为JSON时如何保持表单输入的正确类型

php - 可以在 PHP 图像渲染脚本上执行 javascript 吗?

ios - React Native 调用 iOS ViewController

react-native - 带有图像的 onLayout - React Native

javascript - 使用 React Hooks 进行条件渲染 : loading

java - 如何获取项目点击通知

android - XMPP (Openfire) 推送通知 Android

android - 使用外键 ANDROID 创建数据库表