【发布时间】:2023-04-11 00:00:01
【问题描述】:
我正在尝试创建一个流,即使用从 Firebase Firestore 存储和获取的多个文档引用。
假设我有两个名为 users 和 documents 的集合。创建用户时,他在users 集合中获取带有id 的文档,其中字段名为documentsHasAccessTo,这是对documents 集合中文档的引用列表。重要的是,这些文档可以位于 documents 集合内的不同子集合中,因此我不想查询整个 documents 并对其进行过滤,以节省 Firestore 传输并使其更快我已经知道到 @987654329 的路径@ 存储在documentsHasAccessTo 字段中。
例如,我可以让用户在 users/<user uid> 文档中使用数据,其中 documentsHasAccessTo 字段存储 3 个不同的文档引用。
我想实现这样的目标(未经测试):
final userId = 'blablakfn1n21n4109';
final usersDocumentRef = FirebaseFirestore.instance.doc('users/$userId');
usersDocumentRef.snapshots().listen((snapshot) {
final references = snapshot.data()['documentsHasAccessTo'] as List<DocumentReference>;
final documentsStream = // create single query stream using all references from list
});
请记住,如果documentsHasAccessTo 像上面的示例一样发生变化,如果此流将更新查询,那也很棒,因此我在usersDocumentReferences 上使用snapshots() 而不是单个get() fetch。
我想得越多,我开始相信这是不可能的,或者有一个更简单、更干净的解决方案。我对任何事情都持开放态度。
【问题讨论】:
标签: firebase flutter dart google-cloud-firestore