LateInitializationError: Field has not been initialized.' .then() command not running after running firebase query in FutureBuilder

LateInitializationError: Field has not been initialized.' .then() command not running after running firebase query in FutureBuilder

我正在尝试检索 Firestore 快照,但我的代码似乎无法正常工作。我确保 fireUser.uid 正常工作,并且它打印了正确的 ID 但奇怪的是我的 .then() 代码根本不是 运行 我把 print('then') 放在里面但没有出现在我的控制台上

这是错误发生的地方:

FutureBuilder(
      future: Future.wait([
      DatabaseService.getUserDataFromFirestore(FirebaseAuth.instance.currentUser!),
      GeoService.getPosition(),
      ]),
      builder: (context, snap) {
        if (snap.connectionState == ConnectionState.done) {
          return Frame();
        }
        else return Container(
          color: Colors.black,
          child: Center(
            child: spinKit,
          ),
        );
      }
    );

有错误的未来:

static Future<Userdata> getUserDataFromFirestore (User fireUser) async {
    await usersRef.doc(fireUser.uid).get().then((val) {
      print('then');
      userdata = Userdata.fromDoc(val);
    });
    return userdata;
  }

错误信息:

LateInitializationError: Field 'userdata' has not been initialized.

我遇到了一个与我想的不同的问题。 Firestore 一定已经更新了,因为我的 Firestore 数据库的规则让我被锁定,所以我更新了规则,现在我的代码可以正常工作了。非常感谢您的帮助