Firebase + 数据存储 = need_index

2024-03-05

我正在学习 appengine+go 教程,该教程与 Firebase 连接:https://cloud.google.com/appengine/docs/standard/go/building-app/ https://cloud.google.com/appengine/docs/standard/go/building-app/。该代码可在https://github.com/GoogleCloudPlatform/golang-samples/tree/master/appengine/gophers/gophers-6 https://github.com/GoogleCloudPlatform/golang-samples/tree/master/appengine/gophers/gophers-6,除了我的 Firebase 键之外,其他都是相同的。

我让它在本地工作得很好dev_appserver.py,它会查询 Vision API 并添加标签。但是,在部署到 appengine 后,我在数据存储上收到索引错误。如果我转到 Firebase 控制台,我会看到集合 (Post) 和作为时间戳的字段 (Posted)。

如果我改变这一行:https://github.com/GoogleCloudPlatform/golang-samples/blob/master/appengine/gophers/gophers-6/main.go#L193 https://github.com/GoogleCloudPlatform/golang-samples/blob/master/appengine/gophers/gophers-6/main.go#L193删除Order("-Posted")然后一切正常(重要的是要注意任何Order调用会导致它出错,除了我发布的测试记录是随机顺序的。

在 appengine 中运行时的错误消息是:“获取帖子:API 错误 4(datastore_v3:NEED_INDEX):找不到匹配的索引。”

我尝试创建一个复合索引,或在本地进行测试--require_indexes=true它并没有帮助我调试问题。

编辑:我已将其移至直接使用 Firebase 的数据存储库,而不是 GCP 更新。我从未解决过这个特定问题,但能够继续我的应用程序的实际工作:)


默认情况下,本地开发服务器会自动创建应用程序中调用的实际查询所需的复合索引。从使用开发服务器创建索引 https://cloud.google.com/appengine/docs/standard/go/config/indexconfig#creating_indexes_using_the_development_server:

开发网络服务器(dev_appserver.py https://cloud.google.com/appengine/docs/standard/go/tools/using-local-server)自动添加 当应用程序尝试执行以下查询时,将项目添加到此文件 需要一个索引,但该索引中没有适当的条目 配置文件。

在开发服务器中,如果您执行应用程序的每个查询 将会使得,开发服务器会生成一个完整的列表 中的条目index.yaml file.

当开发 Web 服务器将生成的索引定义添加到index.yaml,它会在以下行下方执行此操作,如果 必要的:

# AUTOGENERATED

开发网络服务器考虑下面的所有索引定义 行是自动的,它可能会更新下面的现有定义 应用程序进行查询时使用此行。

但还需要将生成的索引配置部署到Datastore,并让Datastore更新索引信息(即要进入的索引)Serving状态)以使各个查询不命中NEED_INDEX错误。从更新索引 https://cloud.google.com/appengine/docs/standard/go/config/indexconfig#updating_indexes:

您上传您的index.yaml配置文件到 Cloud Datastore 与gcloud命令。如果index.yaml文件定义任何 Cloud Datastore 中不存在的索引,这些新索引是 建造的。

Cloud Datastore 可能需要一段时间才能创建所有索引并 因此,这些索引不会立即可供 App Engine 使用。 如果您的应用程序已配置为接收流量,则例外 对于需要仍在索引中的索引的查询可能会发生 被建造的过程。

为了避免异常,您必须留出时间来构建所有索引。 有关创建索引的更多信息和示例,请参阅部署 Go 应用程序 https://cloud.google.com/appengine/docs/standard/go/tools/uploadinganapp#updating_indexes.

要将索引配置上传到 Cloud Datastore,请运行 从 index.yaml 所在的目录执行以下命令:

gcloud datastore create-indexes index.yaml

有关信息,请参阅gcloud datastore参考 https://cloud.google.com/sdk/gcloud/reference/datastore/.

您可以使用 GCP Console检查索引的状态 https://console.cloud.google.com/datastore/indexes.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Firebase + 数据存储 = need_index 的相关文章

  • 使用 Python 读取 App Engine 上的文件?

    是否可以在 GAE 上打开文件来读取其内容并获取最后修改的标签 我收到 IOError Errno 13 文件无法访问 我知道我无法删除或更新 但我相信阅读应该是可能的 有人遇到过类似的问题吗 os stat f r st mtim 您可能
  • 如何使用firebase规则检查用户组数组和记录组数组是否相交

    我在 firebase 中有一个记录列表 其中有一个包含零个或多个组的组属性 我还有 firebase auth 对象 它也有零个或多个组 我想为我的记录设置一个 read firebase 规则 该规则将检查两个列表中是否至少存在一个组
  • FCM onMessage 无法在 Firefox 中工作,但可以在 chrome 中工作

    我的代码是工作完美在chrome上 版本103 0 5060 134 但是当我在firefox 103 0 上尝试时它不工作 Service Worker 注册成功 但无法接收通知 消息 控制台中没有显示错误 这是我的代码 顺便说一句 我正
  • 导入 firebase/app 以前可以工作,现在我收到错误(firestore 不是函数)?

    我正在使用 React 和 Redux 我使用如下所示的 import 导入了 firebase import as firebase from firebase app import firebase firestore 一切正常 然后我
  • 在 Google App Engine 上运行的最佳 Django 功能?

    我正在 App Engine 上启动一个新项目 并且布兰登的建议 https stackoverflow com questions 485178 architecture guidance for appengine websites 5
  • 用于传输命名参数和正文的云端点资源属性不起作用

    我正在尝试通过gapi client rpc调用实现对谷歌云端点的调用 如文档中所述 和Google Cloud Endpoints 使用 JS 客户端进行调用 传递参数和 JSON 正文 https stackoverflow com q
  • Firebase 移动应用配额数量

    我向 firebase 项目添加了一个新应用程序 我已经有 66 个应用程序 33 个 android 33 个 ios 当我点击添加应用程序时出现的错误是 发生意外错误 原因 资源已耗尽 例如检查配额 根据他们的文档 https fire
  • 使用 Python 和 Google App Engine 的 Cookie

    我正在 Google App Engine 上开发一个应用程序 但遇到了问题 我想向每个用户会话添加一个 cookie 以便我能够区分当前用户 我希望他们都是匿名的 因此我不需要登录 因此 我为 cookie 实现了以下代码 def cle
  • 如何仅从 Firestore 获取最新更新的数据?

    在 Firestore 上发现任何更改时始终获取整个文档 如何只获取最近更新的数据 这是我的数据 我需要在第一次加载时在聊天中按对象顺序 例如 2018 09 17 30 40 msg和sendby 并且如果数据更新则仅获取新的msg和se
  • Firebase 身份验证无法启用 Google 身份验证方法 - “更新 Google 时出错”

    我正在尝试使用 Google Auth 登录方法启用 Firebase 身份验证 但启用它并单击 保存 显示错误 更新 Google 时出错 https i stack imgur com HMVGD png 在 Google Cloud
  • 如何限制firebase中的字符串长度

    我在 firebase 数据库中工作 我需要限制字符串字段的长度 我怎么做 到该字段的路径是 Col1 doc1 描述 也就是说 从集合 col1 开始 然后进入 doc1 然后对于 doc1 下的所有集合以及该集合下的所有文档 描述字段需
  • 将 firebase auth 与 google app engine 云端点集成

    有人可以指定 使用一些示例代码 如何验证谷歌云端点中的 firebase 令牌吗 最近提出的问题根本没有澄清 如何将 Firebase 身份验证与 Google 应用引擎端点集成 https stackoverflow com questi
  • InAppMessage 一旦显示就会自动消失

    您好 我最近将 InAppMessaging 添加到我的项目中 这似乎很容易集成 但对我来说并没有按预期工作 首先 我将其添加到 build gradle 中 implementation com google firebase fireb
  • App Engine 实体到字典

    将 google app engine 实体 在 python 中 复制到字典对象的好方法是什么 我正在使用 db Expando 对象 所有属性均为扩展属性 Thanks 有一个名为foo尝试 foo dict
  • firebase中按范围查询

    我有一个食品价格范围滑块 根据滑块的最小值和最大值 我想显示此范围内的食品 滑块代码 multiSlider setOnThumbValueChangeListener new MultiSlider SimpleChangeListene
  • cURL 错误 77:设置证书验证位置时出错:CAfile

    我正在使用 Firebase php SDKlink https firebase php readthedocs io en latest index html并在 Windows 10 上的 XAMPP 服务器上使用 laravel 最
  • 检索子值 -firebase-

    System out println ref child email protected cdn cgi l email protection child email 我正在尝试获取 child 的值 但我始终获取该值的 URL 当我尝试使
  • 我可以在 firebase android 中加载另一个用户个人资料图像吗?

    如果我有其他用户的电子邮件但我以其他用户身份登录 我是否可以加载其他用户的个人资料图像 如果您使用 Firebase Storage 那么从技术上讲是的 它只是一个您可以从中检索任何文件的文件系统 如果不伪造您的应用程序 获取 api 密钥
  • Package.json 表示 firebase-functions 的版本已过时

    我有云功能项目 并将该项目从旧笔记本电脑移至新笔记本电脑 我已经安装了所有必要的东西 我的问题是当我尝试时firebase deploy它给了我这个错误 函数 package json 表示 firebase functions 的过时版本
  • Cloud Firestore:强制执行唯一的用户名

    问题 我已经多次看到这个问题 也在 Firebase 实时数据库的上下文中 但我还没有看到令人信服的答案 问题陈述相当简单 经过身份验证的 用户如何选择尚未被占用的用户名 首先 why 用户通过身份验证后 拥有唯一的用户ID 然而 许多网络

随机推荐