Вы должны включить T Builder в свой сервисный файл, как это
Future<List<T>> getCollections<T>(
{String path,
@required
T builder(Map<String, dynamic> data, String documentID)}) async {
final data = await Firestore.instance.collection(path).getDocuments();
final result =
data.documents.map((doc) => builder(doc.data, doc.documentID)).toList();
return result;
}
, затем в вашем файле базы данных используйте конструктор, чтобы добавить данные в класс вашей модели
@override
Future<List<Brand>> brandStream() => _service.getCollections(
path: 'tool_bank', builder: (data, id) => Brand.fromMap(data, id));
, где класс вашей модели должен выглядеть следующим образом
class Brand {
String logo, name, bid;
Brand({this.logo, this.name, this.bid});
factory Brand.fromMap(Map<String, dynamic> brandData, String documentID) {
if (brandData == null) {
return null;
}
final String logo = brandData['logo'];
final String name = brandData['logo'];
return Brand(logo: logo, name: name, bid: documentID);
}
}
Тогда вы можете использовать его так же, как вы его используете