我有一个带有 StreamProvider 的 MultiProvider 设置,它工作正常,并从 Firestore 查询流中获取数据。我想使用这个 Stream A,并形成另一个 StreamProvider B,它: 从流 A 中获取列表值,使用此列表(包含任何输入查询)查询 firestore,并将结果流返回给 StreamProvider。 因此,例如,如果来自 A 的列表要获取新元素,则 StreamProvider B 应查询 Firestore 以获取数据。
多供应商:
MultiProvider(
providers: [
StreamProvider<List<GroupModel>>(
create: (context) => firestoreService.getGroups(), //StreamProvider A
//StreamProvider B here
...
A 的 Firestore 查询:
Stream<List<GroupModel>> getGroups() {
return _db
.collection('groups')
.where('users', arrayContains: _auth.currentUser!.uid)
.snapshots()
.map((snapshot) {
print(snapshot.docs.toList());
return snapshot.docs.map((e) {
print(e.data());
return GroupModel.fromFirestore(e.data());
}).toList();
});
}