Первое, что нужно отметить, это то, что когда вы запускаете Firebase Query, тип ответа, который вы получите, будет QuerySnapshot
, что может быть легче понять, если вы думаете о них как List
из DocumentSnapshot
.s.
Таким образом, вы можете перефразировать ваш код следующим образом
QuerySnapshot snapshot = await Firestore.instance
.collection('musteri')
.where("name", isEqualTo: "Lion")
.getDocuments();
Теперь, когда у вас есть моментальный снимок запроса, вы можете выполнить его итерацию и получить желаемый DocumentSnapshot
.
snapshot.documents.forEach((document){
jsondata = document.data;
});
И тогда вы можете вернуть jsondata
.Но имейте в виду, что этот jsondata
будет последним элементом в QuerySnapshot
.
Так что я думаю, что вам также нужно будет перефразировать ваш метод, чтобы вернуть List<Map<String, String>>
вместо Map<String, String>
В целом ваша функция будет выглядеть так:
Future<Map<dynamic, dynamic>> where() async {
QuerySnapshot snapshot = await Firestore.instance
.collection('musteri')
.where("name", isEqualTo: "Lion")
.getDocuments();
snapshot.documents.forEach((document){
jsondata = document.data;
});
return jsonData;
}