当我调用 get 方法时,Firestore 返回空值?

时间:2021-07-23 13:23:16

标签: firebase flutter google-cloud-firestore

Firestore 为 value.data 返回 null ??我该如何解决??以及如何在没有自定义字符串的情况下传递文档 ID,并将其放在这里。我在 cloud firestore 中的文档 id 和身份验证中的 uid 相同,我可以链接 uid 以从 firestore 获取数据吗? 我是 flutter 和 firebase 的初学者。

class _MyHomePageState extends State<MyHomePage> {
  final _auth = FirebaseAuth.instance;

  CollectionReference users = FirebaseFirestore.instance.collection('users');
  User? currentUser;
  dynamic? data;

  void getCurrentUser() async {
    try {
      final user = _auth.currentUser;
      
      await users.doc("QWhAkxSEXDfn4HJTdwtO1MFnWgz2").get().then((value) {
        print(value.data());
      });
      if (user != null) {
        currentUser = user;
        print(currentUser?.email);
      }
    } on FirebaseAuthException catch (e) {
      print('Failed with error code: ${e.code}');
      print(e.message);
    }
  }

  @override
  void initState() {
    // TODO: implement initState
    getCurrentUser();
    super.initState();
  }

enter image description here

是否与 flutter web 和 firestore 有关?但是我可以将数据添加到集合中,但是在读取时它返回 null

1 个答案:

答案 0 :(得分:1)

users.doc 之前使用 await,如下所示:

await users.doc("QWhAkxSEXDfn4HJTdwtO1MFnWgz2").get().then((value) {
        print(value.data());
      });

并修复您的收藏参考,

instance.collection('users');```

It should be "User" as the name in your firebase.
相关问题