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 数据库的规则让我被锁定,所以我更新了规则,现在我的代码可以正常工作了。非常感谢您的帮助
我正在尝试检索 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 数据库的规则让我被锁定,所以我更新了规则,现在我的代码可以正常工作了。非常感谢您的帮助