I try to get the documents from a collection and map to a model, so far so good. The problem is that when I add a document with invalid fields, the error occurs.
My HomePage
class HomePage extends StatelessWidget {
@override
Widget build(BuildContext context) {
final _plantsProvider = Provider.of<PlantsProvider>(context);
List<Plant> plants;
return Scaffold(
body: Container(
child: SafeArea(
child: StreamBuilder(
stream: _plantsProvider.fetchPlantsStream(),
builder: (_, AsyncSnapshot<QuerySnapshot> snapshot) {
if (snapshot.hasData && snapshot.data!.docs.length > 0) {
plants = snapshot.data!.docs.map(
(doc) {
return Plant.fromJSON(doc.data(), doc.id);
},
).toList();
return ListView.builder(
itemCount: plants.length,
itemBuilder: (buildContext, index) =>
ListTile(title: Text(plants[index].name!)),
);
} else
return CircularProgressIndicator();
},
)),
),
);
}
}
correct document
Bad document, error occurs only when I add document with wrong fields. In this case other. Any way to control that?