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 artigo é coletado da Internet.
Se houver alguma infração, entre em [email protected] Delete.
deixe-me dizer algumas palavras