Yul*_*ian 5 firebase firebase-security google-cloud-firestore
假设我有一个users要在我的页面中过滤的集合。要过滤的字段是name、age、location。
为此,我创建了一个复合索引(名称、年龄、位置)。问题是我希望有机会按 3 项的任意组合进行过滤 - 姓名和年龄、姓名和位置、年龄和位置。当我尝试这样做时,系统会提示我为使用的字段组合创建另一个复合索引。
我的问题是 - 这是否意味着我必须为所有可能的复合组合添加索引?如果是,如果我想潜在地过滤 10 个字段,而不仅仅是 3 个字段,我该如何实现这一点?我是否必须自己为所有组合创建索引?
如果您在查询中使用多个等式 (==) 子句,则可以利用索引合并。Cloud Firestore 可以重复使用现有索引。在您的例子中,您有 3 列名称、年龄和位置,并且您想按心排序,然后创建三个索引,如下所示:
\n\nCollection Fields indexed\nusers \xe2\x86\x91 name, \xe2\x86\x91 hearts\nusers \xe2\x86\x91 age, \xe2\x86\x91 hearts\nusers \xe2\x86\x91 location, \xe2\x86\x91 hearts\nRun Code Online (Sandbox Code Playgroud)\n\n现在,您可以使用多个等式 (==) 子句创建结合姓名、年龄和位置的不同查询。
\n\n您可以在此处参考关于索引合并的Firestore文档
\n是的,您必须自己创建每个组合。最简单的方法可能是使用Firebase CLI根据您创建和管理(并可能存储在源代码管理中)的 JSON 文件来部署索引。您甚至可以编写一些代码来生成此文件,这样您就不必手动创建每个组合。
| 归档时间: |
|
| 查看次数: |
3257 次 |
| 最近记录: |