【问题标题】:The query requires an index. You can create it here: {link is broken}查询需要索引。你可以在这里创建它:{link is broken}
【发布时间】:2018-11-22 01:37:59
【问题描述】:

我正在查询我的“GroupConvos”集合,其中所有文档都有一个 memberIds 字符串数组,其中包含有关属于该组的成员的 ID,并且对 GroupConvos 执行以下查询会给我一个断开的链接

self.db.collection(kGroupConvos)
       .order(by: kUpdatedAt, descending: true)
       .whereField("memberIds", arrayContains: self.currentUserId)
       .limit(to: 20)
       .getDocuments { [weak self] snapshot, error in
            if let error = error {
               print(error) 
            } else { ... }

查询需要索引。你可以在这里创建它:{link}

图片:

于是我进入控制台并创建了一个索引:

当我进行查询时,我不断收到同样的错误。关于在这里做什么有什么建议吗?

【问题讨论】:

  • 如果您在控制台中发现错误,请提交带有重现步骤的错误报告:firebase.google.com/support/contact/bugs-features
  • 为大家提交。与此同时,在修复自动创建索引错误的同时,您是否对我的查询或我的索引提出建议以使其正常工作并避免错误?

标签: swift google-cloud-firestore firebase-console


【解决方案1】:

如果您使用 array-contains 来搜索字段,看起来您需要为其添加一个 Array Contains 类型索引:

请注意,您有一个选项。看起来您所做的是让 memberIds 成为升序类型字段索引。

【讨论】:

  • 谢谢道格。我昨天一定错过了那个选项。目前正在讨论有关控制台问题的支持,因此希望很快就能解决。祝你感恩节愉快!
【解决方案2】:

对于任何感兴趣的人,防止此查询出现索引错误的正确索引是:

arrayField: arrayContains 更新时间:降序

【讨论】:

    猜你喜欢
    • 2018-12-15
    • 2020-03-25
    • 2020-05-12
    • 1970-01-01
    • 2011-01-20
    • 2019-05-16
    • 2022-01-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多