firebase - 如何从Cloud_Firestore获取单个文档数据到我的变量?

标签 firebase flutter dart google-cloud-firestore

我一直在尝试从Firestore获取单个数据。但是我不能。

void _onPressed() async{
    var firebaseUser = await FirebaseAuth.instance.currentUser();
    var userData;
    firestoreInstance.collection("users").document(firebaseUser.uid).get().then((value){
      setState(){
      userData = value.data
      }
      print('Value data = ${value.data}');
    });
   print('UserData = ${userData}'); 
  }
结果:
Value data = { some data some data}
UserData = null
为什么我的userData为null?我该如何解决?我期待着您的回音。

最佳答案

get()是异步的,在查询完成之前立即返回。 then()也是异步的(以及返回Future的任何东西)。使用await而不是then暂停代码,直到获得结果为止。

var snapshot = firestoreInstance.collection("users").document(firebaseUser.uid).get()
var userData = snapshot.data
print('UserData = ${userData}')

关于firebase - 如何从Cloud_Firestore获取单个文档数据到我的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63480352/

相关文章:

firebase - 如何在 Firebase 托管上的多个发行版本之间进行流量分配

flutter - 在 Flutter + Padding 中剪切文本效果

flutter - Flutter 中的 LinearPercentIndicator

Flutter:具有多个命名路由的flutter_page_transition不起作用

Javascript 异步 map 提前完成

Android - 按时间戳排序 Firebase 数组

angular - 使用 firebase auth 的单元测试 Angular 服务?

input - 使 TextField 换行,而不是溢出

centos - 在centos7上安装flutter : What's the equivalent of debian package lib32stdc++6 in centos7?

dart - 为什么我们从服务器获取数据时需要使用异步?