"listOfDocSnap.map((docSnap(=>Book.fromMap(docSnap.data(((("我在网上收到错误:
错误:参数类型"Object?"不能分配给参数类型'Map<动态,动态>'。
和
错误:返回类型"Iterable"不是闭包上下文所要求的"List"。
图书类别:
class Book {
final String bookName;
final String id;
final String authorName;
final Timestamp publishedDate;
Book(
{required this.bookName,
required this.id,
required this.authorName,
required this.publishedDate});
Map<String, dynamic> toMap() => {
'id': id,
'bookName': bookName,
'authoName': authorName,
'publishedDate': publishedDate,
};
factory Book.fromMap(Map map) => Book(
bookName: map['bookName'],
id: map['id'],
authorName: map['authorName'],
publishedDate: map['publishedDate']);
}
视图模型类:
class BooksViewModel extends ChangeNotifier {
Database _database = Database();
Stream<List<Book>> getBookList() {
const String booksRef = 'books';
Stream<List<DocumentSnapshot>> streamListDocument =
_database.getBooks(booksRef).map((querySnapshot) => querySnapshot.docs);
Stream<List<Book>> streamListOfBook = streamListDocument.map(
(listOfDocSnap) =>
***listOfDocSnap.map((docSnap) => Book.fromMap(docSnap.data())));***
return streamListOfBook;
}
}
map返回Iterable,因此需要调用.toList((
listOfDocSnap.map<Book>((docSnap) => Book.fromMap(docSnap.data()))).toList();