【问题标题】:How I create cloud firestore index? flutter如何创建云 Firestore 索引?扑
【发布时间】:2022-01-06 15:56:41
【问题描述】:

大家好,我想为我的 Firestore 项目创建云 Firestore 索引,但我不知道应该将哪个流上传到索引字段,因为我在应用程序中遇到错误:

W/Firestore(17047): (24.0.0) [Firestore]: Listen for Query(target=Query(chatRooms where participants.null == true order by __name__);limitType=LIMIT_TO_FIRST) failed: Status{code=PERMISSION_DENIED, description=Missing or insufficient permissions., cause=null}
W/Firestore(17047): (24.0.0) [Firestore]: Listen for Query(target=Query(users/2e5yO3ZYKDWprC8dVi1bzlY9a0Q2 order by __name__);

这是我的直播:

QuerySnapshot snapshot = await _fireStore
        .collection("chatRooms")
        .where("participants.${userModel.uid}", isEqualTo: true)
        .where("participants.${targetUser.uid}", isEqualTo: true)
        .get();
StreamBuilder(
                    stream: _fireStore
                        .collection('chatRooms')
                        .doc(chatRoom.chatRoomId)
                        .collection('messages')
                        .orderBy('createdon', descending: true)
                        .snapshots(),

我不能发布图片,因为需要至少 10 个声望

规则:

Rules

【问题讨论】:

    标签: firebase flutter google-cloud-firestore


    【解决方案1】:

    最简单的解决方案是使用包含直接链接的错误消息在 Firebase 控制台中创建缺失的索引。

    正如文档中here 所解释的那样,“如果您尝试使用未映射到现有索引的范围子句的复合查询,则会收到错误”。

    因此,在您的代码中捕获错误(通常使用 if (snapshot.hasError),请参阅 FlutterFire 文档中的 here),获取消息并在您首选的浏览器中打开链接(登录到您的 Firebase 项目)。


    上面提到的文档页面中列出了其他解决方案,但同样,使用错误消息中的链接真的很容易!

    【讨论】:

    • 非常感谢@Renaud Tarnec
    猜你喜欢
    • 2021-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多