您永远都不应使用
Future<Stream>,这是双重异步的,这是不必要的。只需返回一个
Stream,然后在准备就绪之前不必发出任何事件。
目前尚不清楚
try/
catch在保护什么,因为返回non-
Future不会抛出异常。如果返回流,则也要在流上发出任何错误。
您可以将代码重写为:
Stream<QuerySnapshot> getDataStreamSnapshots() async* { // Get current user. final User user = await FirebaseAuth().currentUser(); String userId = user.uid; yield* db .collection(db) .where("uid", isEqualTo: userId) .snapshots();}
一个
async*功能是异步的,所以你可以使用
await。它返回一个
Stream,您可以使用
yieldevent;或在流上发出事件
yield* streamOfEvents;。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)