首页 > 解决方案 > 如何在flutter中从firebase数据库中检索数据?

问题描述

我正在尝试从 firestore 检索数据并将 val 放入 if 语句中,但是当我这样做时它给了我这个错误:

I/flutter ( 8492): Closure: () => String from Function 'toString':.

这是我的代码:

void getUserData() async {
    try {
      firestoreInstance
          .collection('Users')
          .document(usernameController.text)
          .get()
          .then((value) {
        setState(() {
          email = (value.data)['email'];
          password = (value.data)['password'];
          gender = (value.data)['gender'];
          username = (value.data)['username'];
          userType = (value.data)['userType'];
        });
      });
    } catch (e) {
      print(e.toString);
    }
  }

忘了提到当我打印 userType 这是一个文本时它给我 NULL。

标签: firebaseflutterdartgoogle-cloud-firestore

解决方案


只需删除您的 ()

void getUserData() async {
try {
  firestoreInstance
      .collection('Users')
      .document(usernameController.text)
      .get()
      .then((value) {
    setState(() {
      email = value.data['email'];
      password = value.data['password'];
      gender = value.data['gender'];
      username = value.data['username'];
      userType = value.data['userType'];
    });
  });
} catch (e) {
  print(e.toString);
}

}

或像这样使用

username = value['username'];

推荐阅读