我使用firestore
订阅这样的流:
db.collection(collection).snapshots().listen((QuerySnapshot snapshot) {
// something
});
listen
返回 StreamSubscription<QuerySnapshot>
现在我想编写一个方法,即订阅此流,这样当我得到新结果时我可以做一些事情。但相同的方法应该自行返回该数据流。我试过这个:
static Stream<QuerySnapshot> listenOnCollection(String collection) async* {
db.collection(collection).snapshots().listen((QuerySnapshot snapshot) {
// do something and now forward incoming snapshot
yield snapshot;
});
}
这不会像yield
那样工作甚至在内部上下文中也不为人所知。我怎样才能实现这个目标?非常感谢!
最佳答案
已测试,工作
static Stream<QuerySnapshot> listenOnCollection(String collection) async* {
var stream = db.collection(collection).snapshots();
await for(final snapshot in stream){
yield snapshot;
}
}
关于flutter - 订阅流并在 flutter dart 中转发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65816945/