我一直在努力解决一个错误,这显然是由于我尝试在 FutureBuilder 中使用的 DocumentSnapshot 的新更改 你可以在下面看到我是如何使用它的:
body: FutureBuilder(
future: usersRef.doc(widget.userId).get(),
builder: ( context, snapshot) {
List<Widget> children;
if (!snapshot.hasData) {
return Center(
child: CircularProgressIndicator(),
);
}
else if (snapshot.hasData) {
UserModel user = UserModel.fromDoc(snapshot.data);
factory UserModel.fromDoc(DocumentSnapshot doc) {
return UserModel(
id: doc.id,
name: doc['name'],
username: doc['username'],
password: doc['password'],
profileImageUrl: doc['profileImageUrl'],
email: doc['email'] ,
userIds: doc['userIds'] ?? '',
);
}
我遇到了这个错误:
The following StateError was thrown building FutureBuilder<DocumentSnapshot>(dirty, state: _FutureBuilderState<DocumentSnapshot>#46a8d):
Bad state: cannot get a field on a DocumentSnapshotPlatform which does not exist
我已经尝试使用我在这个 github 问题 (https://github.com/FirebaseExtended/flutterfire/issues/3826) 上找到的解决方案来解决它,但它并没有真正解决它。
如果你们中的任何人帮助我,我将不胜感激
谢谢
答案 0 :(得分:0)
我遇到了同样的问题,在访问它之前还没有找到检查字段是否存在的方法,所以我的解决方法如下
,(?=[^"]*"[^"]*(?:"[^"]*"[^"]*)*$)