firebase - Firebase/Firestore 找不到匹配的索引,但没有创建索引的选项
问题描述
我正在尝试在我的应用程序中运行一个 Firestore 查询,该查询引发了一个索引丢失的错误。Firestore 过去总是包含一个链接,用于单击控制台以创建丢失的索引,但这次它不存在,所以我被卡住了!不知道这次我做了什么不同的事情。
这是控制台错误:
prebuilt-d16b955d-cdb9e87f.js:188 Uncaught (in promise) FirebaseError: no matching index found.
at new e (prebuilt-d16b955d-cdb9e87f.js:188)
at prebuilt-d16b955d-cdb9e87f.js:10416
at prebuilt-d16b955d-cdb9e87f.js:10414
at e.onMessage (prebuilt-d16b955d-cdb9e87f.js:10403)
at prebuilt-d16b955d-cdb9e87f.js:10356
at prebuilt-d16b955d-cdb9e87f.js:10387
at prebuilt-d16b955d-cdb9e87f.js:15180
这是我的 JS 函数:
loadcatalogues() {
console.log(this.clubID);
this.showspinner = true;
this.catalogues = [];
var today = moment().utc().unix();
let self = this;
fb.catalogueCollection
.where("clubID", "==", this.clubID)
.where("expiry", ">", today)
.orderBy("expiry", "asc")
.orderBy("price", "asc")
.get()
.then(function (querySnapshot) {
querySnapshot.forEach(function (doc) {
if (
doc.data().members &&
doc.data().members.indexOf(self.userProfile.id) !== -1
) {
return false;
}
var starttime = moment.unix(doc.data().start).utc();
var endtime = moment.unix(doc.data().expiry).utc();
var tempdata = {
title: doc.data().title,
description: doc.data().description,
start: starttime.format("DD-MM-YYYY"),
expiry: endtime.format("DD-MM-YYYY"),
price: doc.data().price,
purchased: false,
stripeid: doc.data().stripeid,
catalogueid: doc.id,
limited: doc.data().limited,
};
self.catalogues.push(tempdata);
});
if (self.catalogues.length == 0) {
self.shownooptions = true;
}
self.showspinner = false;
});
},
如果我删除第一个 where 子句 (.where("clubID", "==", this.clubID)) 那么查询运行良好,所以我猜测该查询已经存在索引。我最近才添加了 clubID 字段,那会不会缺少索引?
谢谢!!
解决方案
Google Firestore 目前似乎存在问题。打了一个支持电话,他们已经确认他们已经收到了其他几份报告,他们的工程团队正在调查。
推荐阅读
- python - 如何在 PyQt5 中从一个类访问 Qobject 到另一个类
- android - “storage/emulated/0”和“storage/caf-999”有什么区别
- php - PHP 代码未执行,而是显示在 Web 浏览器中
- slack-api - Slack 调用 API - 在响应 url 上发布时出现 500 错误
- variables - Ansible 任务包含未定义的 var,尽管已在 defaults/main.yml 中定义
- java - Spring不想将记录保存在数据库中
- javascript - 将 rangeSelector 添加到折线图?
- core-data - 带有核心数据的 SwiftUI 预览:无效的 NSEntityDescription
- regex - sed 命令将 c 样式的多行注释更改为 c++ 样式的多行注释
- flutter - 错误:flutter/lib/ui/ui_dart_state.cc(186)] 未处理的异常:类型 'String' 不是类型 'int' 的子类型