I'm new to flutter. I want to get a specific doc from firestore using its uid and then transfer this doc in a value type that I can handle. BUT i get a breakpoint when I run my application : StateError (Bad state: field does not exist within the DocumentSnapshotPlatform). This the code:
final cloth = await DatabaseService(uid: uid)
.clothCollection
.doc(uid)
.get()
.then((doc) => {
Cloth(
brand: doc.get('brand'),
name: doc.get('name'),
color: doc.get('color'),
url: doc.get('url'))
});
and Cloth :
class Cloth {
final String? name;
final String? url;
final String? brand;
final String? color;
Cloth({this.name, this.brand, this.color, this.url});
}
If there is an easier way to get this doc let me know. Thanks for your help!
The get
attribute does not exist on the DocumentSnapshot
(doc). Instead, you have to use the data()
method which returns a Map<String, dynamic>
, or null if the doc does not exist. It's good practice to always check to see if the document exists first before executing further.
final cloth = await DatabaseService(uid: uid)
.clothCollection
.doc(uid)
.get()
.then((doc) {
if (doc.exists) {
Map<String, dynamic>? data = doc.data();
return Cloth(
brand: data?['brand'],
name: data?['name'],
color: data?['color'],
url: data?['url']);
} else {
print('Document does not exist.');
}
});
Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.
En caso de infracción, por favor [email protected] Eliminar
Déjame decir algunas palabras