[英]how do I turn off data reloading from firebase while using FlutterFire_ui?
[英]How do I get data from Firebase using FlutterFire Firestore and Flutter 2.0 with Null Safety
我收到代码“snapshot.Data()”的错误。 这是对 Firestore 的重大更改之一,快照现在属于“DocumentSnapshot<Object?>”类型。
BREAKING:通过数据获取器获取快照的数据现在是通过 data() 方法完成的。
新文档中提供的示例对我没有帮助。
“参数类型'对象?' 不能分配给参数类型'Map<String, dynamic>'"
我尝试了许多组合,但我无法摆脱错误。 另外,我没有使用 stream,我只想读取单个记录。
这是代码:
var snapshot = await _reference.doc(_user.uid).get();
return UserData.fromMap(snapshot.data());
这是 model “fromMap”:
factory UserData.fromMap(Map<String, dynamic> map) {
return UserData(
birthday: DateTime.fromMillisecondsSinceEpoch(map['birthday']),
gender: map['gender'],
isDarkMode: map['isDarkMode'],
isMetric: map['isMetric'],
name: map['name'],
password: map['password'],
);
}
好的,找到了我的问题。 我有这样定义的“_reference”:
final CollectionReference _reference = FirebaseFirestore.instance.collection('users');
我应该这样做:
final CollectionReference<Map<String, dynamic>> _reference = FirebaseFirestore.instance.collection('users');
或者只是这样:
final _reference = FirebaseFirestore.instance.collection('users');
将其更改为:
factory UserData.fromMap(Map<String, dynamic>? map) //added a "?" after dynamic.
这使您的 fromMap 方法接受可为空的值,理论上,如果文档不存在,您的 firebase 查询可以返回 null。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.