Я пытаюсь прочитать коллекцию из Firestore в своем приложении. По сути, я получаю снимок коллекции и сопоставляю его с моим объектом dart. но когда я слушаю поток или использую поток в StreamProvider или StreamBuilder, данные снимка всегда равны нулю!
Во время отладки я заметил, что данные, полученные как json и сопоставленные правильно, и результат приводятся к списку, поэтому мой поток должен содержать правильные данные, но при прослушивании данные, к сожалению, все еще равны нулю.
var ref = _db.collection('routes');
final standardSerializers =
(serializers.toBuilder()..addPlugin(StandardJsonPlugin())).build();
ref.snapshots().map((list) {
list.documents.map((doc) {
print("Json: " + doc.data.toString());
print("Object: " +
standardSerializers
.deserializeWith(ClimbingRoute.serializer, doc.data)
.toString());
return standardSerializers.deserializeWith(
ClimbingRoute.serializer, doc.data);
}).toList();
}).listen((onData) {
print("On listen: " + onData.toString());
});
Выход консоли:
00:21:31.055 69 info flutter.tools I/flutter (13897): Json: {grade: 4c, gradingStyle: french, belayingStyle: auto, closure: flash, outCome: success, tags: []}
00:21:31.056 70 info flutter.tools I/flutter (13897): Object: ClimbingRoute {
00:21:31.056 71 info flutter.tools I/flutter (13897): outCome=success,
00:21:31.056 72 info flutter.tools I/flutter (13897): gradingStyle=french,00:21:31.056 73 info flutter.tools I/flutter (13897): grade=4c,00:21:31.056 74 info flutter.tools I/flutter (13897): belayingStyle=auto,00:21:31.056 75 info flutter.tools I/flutter (13897): closure=flash,
00:21:31.056 76 info flutter.tools I/flutter (13897): tags={},
00:21:31.056 77 info flutter.tools I/flutter (13897): }00:21:31.056 78 info flutter.tools I/flutter (13897): On listen: null