【问题标题】:how to use where with orderby in flutter如何在颤动中使用where与orderby
【发布时间】:2019-08-06 09:26:46
【问题描述】:

如何在 Flutter 中使用 where 和 orderBy。

任何人都可以告诉我这些索引是如何工作的以及如何正确创建它们。

Query query = Firestore.instance
        .collection('clients')
        .where('sequenceStatus', isEqualTo: sequenceName)
        .orderBy('created', descending: true)
        .limit(20);

W/Firestore(19854): (19.0.0) [Firestore]: 侦听查询(其中 sequenceStatus == 引用 order by -created, -name 的客户端)失败:Status{code= FAILED_PRECONDITION, description=查询需要索引。你可以在这里创建它:https://console.firebase.google.com/project/rigatoinfissitest/database/firestore/indexes?create_composite=ClFwcm9qZWN0cy9yaWdhdG9pbmZpc3NpdGVzdC9kYXRhYmFzZXMvKGRlZmF1bHQpL2NvbGxlY3Rpb25Hcm91cHMvY2xpZW50cy9pbmRleGVzL18QARoSCg5zZXF1ZW5jZVN0YXR1cxABGgsKB2NyZWF0ZWQQAhoMCghfX25hbWVfXxAC,cause=null}

【问题讨论】:

    标签: flutter


    【解决方案1】:

    在您在问题中发布的上述链接上重定向后,请按照以下 5 个步骤或从第 3 步开始。

    1. 转到您的 Firebase 控制台数据库

    2. 从那里选择索引。点击添加索引。

    3. 在集合 ID 字段中输入 clients(集合名称)。

    4. 在第一个字段中添加sequenceStatus(where 子句字段)并保持升序不变。

    5. 添加 created(orderby 字段)第二个字段并保持 Ascending 不变。

    6. 点击创建索引。

    现在,运行您的查询。它会工作得很好。

    干杯!

    【讨论】:

    • 和我在序列中提到的一样?
    • 它正在工作我很抱歉我想按降序创建。一切正常,感谢您的帮助。
    • 没有问题。我很高兴它能帮助你。
    • 查询 q1 = _firestore .collection('clients') .where('isStar', isEqualTo: false) .where('isStar', isEqualTo: null) .orderBy('created', 降序: true) .limit(perPage);此查询是两个字段索引还是三个索引,因为 firebase 无法访问一个字段以获取一个索引中的多个索引。
    • 很遗憾,您不能这样做。您必须在 data 中获取该poserName 数组,然后检查该数组的长度。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-17
    • 2021-06-21
    • 2020-01-08
    • 2021-08-01
    • 2020-10-07
    相关资源
    最近更新 更多