繁体   English   中英

Firebase / Firestore - 如何手动创建索引

[英]Firebase / Firestore - How to manually create indexes

我正在使用 react-native 开发一个移动应用程序。 我正在使用第三方模板开始工作。 此模板创建一个名为“users”的 Firestore 数据库集合。 这个模板还不断地给我关于“用户”集合上没有索引的错误:

[FirebaseError: The query requires an index. You can create it here: https://console.firebase.google.com/v1/r/project/social-marketplace-3c8df/firestore/indexes?create_composite=CmRwcm9qZWN0cy9zb2NpYWwtbWFya2V0cGxhY2UtM2M4ZGYvZGF0YWJhc2VzLyhkZWZhdWx0KS9jb2xsZWN0aW9uR3JvdXBzL1NvY2lhbE5ldHdvcmtfUG9zdHMvaW5kZXhlcy9fEAEaDAoIYXV0aG9ySUQQARoNCgljcmVhdGVkQXQQAhoMCghfX25hbWVfXxAC]

当我从错误消息中复制此“创建索引”链接并将其粘贴到浏览器中时,它会将我带到一个空的 Firebase 控制台页面。 因此没有创建索引。 当我尝试通过导航到 Firestore 页面上的“索引”选项卡、选择复合索引并输入“/users”作为我的集合名称来手动创建此类索引时,我被告知“/users”是保留的,所以我我无法创建这样的索引。 有没有办法在我的“/users”集合上创建这样的索引?

正如@Renaud Tarnec 的评论,它通过使用Firebase 控制台修复:

  1. Cloud Firestore >索引面板 > 单击添加索引按钮。
  2. 集合 ID文本框中输入“用户”或值。
  3. 在要索引的字段中,添加至少两个字段- 这是必需的
  4. 向下滚动> 查询范围 > Select 如果是集合集合组
  5. 它将启用创建索引按钮。

可以创建一个文件firestore.indexes.json来创建你的索引:

 {
      "indexes": [
        {
          "collectionGroup": "collection_name",
          "queryScope": "COLLECTION",
          "fields": [
            {
              "fieldPath": "your_field_name",
              "order": "ASCENDING"
            },
            {
              "fieldPath": "your_field_name",
              "order": "DESCENDING"
            }
          ]
        },
      ]
    }

记住:CollectionGroup = 集合名称

queryScope = 类型(集合 | 文档)

fields = orderBy 的字段

singleField = orderBy 的唯一字段

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM