我正在做一个社交媒体,在我的帖子中有“标签”(实际上是无限的,因为它们超过200个),我希望我的用户同时过滤标签和日期,例如:
myRef.where(“ tag” ==“ tagName”)。orderBy('date','asc')
但是...我确实有无数个tagName,这让我感到震惊,我无法处理。
我应该创建一个截面为1m的自定义地图吗? 我应该创建一个包含数据的自定义ID吗??? 我如何才能将数据asc与这些查询混合或将两种或多种类型混合在一起?
答案 0 :(得分:0)
您所拥有的查询要求在tag + date
上具有索引,而在tagName + date
上不需要。
但是,如果要保留每个文档的标签列表,则需要将它们存储在数组中,然后使用array-contains
检查文档是否具有特定标签。要查看字符串值tagName
的数组中是否存在tag
,请查询:
myRef.where("tag", "array-contains", "tagName").orderBy('date', 'asc')
有关更多信息,请参见Better Arrays in Cloud Firestore!