gpt4 book ai didi

javascript - 按用户 ID 和日期范围查询 Firestore?

转载 作者:行者123 更新时间:2023-12-03 00:42:59 24 4
gpt4 key购买 nike

我需要查询 Firestore,但它一直告诉我需要索引。问题是这是不现实的,因为每个用户都需要基于他们的 UserId 的自定义索引。为了安全起见,我不能允许任何人访问,除非 canAccess.${userID} == true 如下例所示。但是,如果我要获取所有项目,并按日期客户端过滤它们,那么每次更改日期范围时,我都会获取数十万个项目,因此这是不切实际的。

this.db.collection('items')
.where(`canAccess.${userId}`, '==', true)
.where('date', '>=', startDate)
.where('date', '<=', endDate);

如何仅获取他们被允许访问的项目,并且仅在所选日期范围内获取?

最佳答案

您必须重组文档才能执行此查询。考虑将可以访问文档的 uid 放入名为 canAccess 的列表类型的字段中。然后用 array-contains 查询列表在该字段上创建索引后。

this.db.collection('items')
.where('canAccess', 'array-contains', userId)
.where('date', '>=', startDate)
.where('date', '<=', endDate);

关于javascript - 按用户 ID 和日期范围查询 Firestore?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53364788/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com