【问题标题】:Cloud Firestore not showing composite index link in the consoleCloud Firestore 未在控制台中显示复合索引链接
【发布时间】:2021-07-15 06:20:15
【问题描述】:

我正在运行一个需要创建复合索引的查询。 AFAIK,有两种解决方法。

  1. 进入控制台,手动创建索引。

  2. 按原样运行查询,以在控制台中收到错误,创建索引后可以将我引导至 Firebase 控制台。

但我在控制台上没有看到任何此类链接。这是查询:

collection.where('foo', isEqualTo: 'bar').where('baz', isLessThan: 1);

错误:

E/flutter (21010): [ERROR:flutter/lib/ui/ui_dart_state.cc(207)] Unhandled Exception: [cloud_firestore/failed-precondition] Operation was rejected because the system is not in a state required for the operation's execution. If performing a query, ensure it has been indexed via the Firebase console.
E/flutter (21010): #0      MethodChannelQuery.get (package:cloud_firestore_platform_interface/src/method_channel/method_channel_query.dart:108:7)
E/flutter (21010): <asynchronous suspension>
E/flutter (21010): #1      _JsonQuery.get (package:cloud_firestore/src/query.dart:385:9)
E/flutter (21010): <asynchronous suspension>
E/flutter (21010): #2      _FooPageState.fooMethod (package:foo_bar_baz.dart:140:27)
E/flutter (21010): <asynchronous suspension>
E/flutter (21010): 
W/Firestore(21010): (23.0.0) [WatchStream]: (602e2ef) Stream closed with status: Status{code=CANCELLED, description=Disconnecting idle stream. Timed out waiting for new targets., cause=null}.

【问题讨论】:

    标签: firebase flutter google-cloud-firestore


    【解决方案1】:

    显然 Firebase 已停止在客户端 SDK 中返回索引创建链接。您仍然可以在 Cloud Function 中使用 Admin SDK 来获取直接索引创建链接或自己手动创建一个,如下所示:

    确保将集合和字段名称替换为原始名称。

    【讨论】:

    • 您可以参考this answer并使用函数模拟器自己获取索引创建链接。同时,如果有意不在客户端显示这些链接,我会尝试联系 Firebase。
    • 谢谢,我不知道他们停止在客户端创建链接。
    • 你好像是 Firebase 的一员,能不能也帮我一下this question
    • 嘿@iDecode,这还没有得到证实(我不是 Firebase 的成员),但你可以跟踪这个Github issue 以获得官方确认。
    猜你喜欢
    • 2021-09-06
    • 2020-10-26
    • 2015-06-30
    • 2021-09-03
    • 2020-01-30
    • 1970-01-01
    • 2021-06-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多