【发布时间】:2021-04-18 06:52:01
【问题描述】:
我有一个 Firestore 数据库和一个 Flutter 应用程序。数据库如下:
Collection Doc Collection
scans uid:DateTime.now() userID: 'abjnbj28snOPEAJd', scanID: 'test', data: 'abc', company: 'TH'
uid:DateTime.now() userID: 'nj12djaJDJaihinf', scanID: 'test2', data: 'xyz', company: 'PH'
我不将数据存储在用户集合中的文档中的原因是,我需要公司管理员能够访问所有扫描,无论根据公司名称扫描哪个用户。 我使用 uid:DateTime.now() 的原因是每个文档(扫描)都应该是唯一的。
问题:
- 这是处理需要参考的数据的最佳方法吗?
- 是否对文档 ID 使用 uid:DateTime.now() 最佳方法?它需要非常独特,之前我只在 users/uid/scans/DateTime/scanData 下使用 DateTime.now() 作为 scanID。
- 如何查询这些扫描并按用户 ID、公司或扫描 ID 过滤?
这就是我现在的做法,这会导致不同类型的错误:
FutureBuilder(
future: FirebaseFirestore.instance
.collection('scans')
.orderBy('dateTime', descending: true)
.limit(10)
.where('userID', isEqualTo: user.uid)
.get()
builder: (context, AsyncSnapshot snapshot) {
if (!snapshot.hasData) {
return CircularProgressIndicator();
} else {
print(snapshot.data['userID'];
});
【问题讨论】:
标签: firebase flutter dart google-cloud-firestore