Flutter 获得一条小溪<;列表<;对象>&燃气轮机;从一条小溪<;事件>;从firebase实时数据库颤振

Flutter 获得一条小溪<;列表<;对象>&燃气轮机;从一条小溪<;事件>;从firebase实时数据库颤振,flutter,firebase-realtime-database,Flutter,Firebase Realtime Database,我对Flitter Streams/Bloc/Provider非常陌生,我正在学习一个教程来理解它。 在本教程中,他们使用Firestore,因此获得如下流: Stream<List<Todo>> todos() { return todoCollection.snapshots().map((snapshot) { return snapshot.documents .map((doc) => Todo.fromEntit

我对Flitter Streams/Bloc/Provider非常陌生,我正在学习一个教程来理解它。 在本教程中,他们使用Firestore,因此获得如下流:

Stream<List<Todo>> todos() {
    return todoCollection.snapshots().map((snapshot) {
      return snapshot.documents 
          .map((doc) => Todo.fromEntity(TodoEntity.fromSnapshot(doc)))
          .toList();
    });
  }
}

//试试3
流警报(){
return\u databaseReference.onValue.map(
(快照)=>UserAlert.fromSnapshot(快照);//返回类型错误
);

}使用StreamTransformer

Stream<UserAlert> alerts() {
  handleData(Event event, EventSink<UserAlert> sink) =>
      sink.add(UserAlert.fromSnapshot(event.snapshot.value));

  final transformer =
      StreamTransformer<Event, UserAlert>.fromHandlers(handleData: handleData);

  return _databaseReference.onValue.transform(transformer);
}
流警报(){
handleData(事件、事件接收器)=>
添加(UserAlert.fromSnapshot(event.snapshot.value));
终变=
StreamTransformer.fromHandlers(handleData:handleData);
返回_databaseReference.onValue.transform(transformer);
}

非常感谢。它正在抛出一个错误,因为无法将参数类型“Stream”分配给参数类型“Iterable”。你能看到发生了什么吗?你如何获得用户警报列表?什么是
\u databaseReference.onValue
?流警报(){handleData(Event-Event,EventSink-sink)=>sink.add([UserAlert.fromSnapshot(Event.snapshot)];final transformer=StreamTransformer.fromshandledata(handleData:handleData);返回{databaseReference.onValue.transform(transformer);}警报()。监听((警报){final aList=[alert];});祝你好运~~干杯
 // try 3
 Stream<List<UserAlert>> alerts() {
return _databaseReference.onValue.map(
    (snapshot) => UserAlert.fromSnapshot(snapshot); // wrong return type
);
Stream<UserAlert> alerts() {
  handleData(Event event, EventSink<UserAlert> sink) =>
      sink.add(UserAlert.fromSnapshot(event.snapshot.value));

  final transformer =
      StreamTransformer<Event, UserAlert>.fromHandlers(handleData: handleData);

  return _databaseReference.onValue.transform(transformer);
}