You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

误删Firestore复合索引后查询仍可用,是否存在缓存或延迟?

Firestore删除复合索引后的延迟与查询稳定性问题

你在清理Firestore旧复合索引时误删了某个查询依赖的索引,但当前这个查询仍能正常运行:

const allCredits = await tx.get(
  db.collection(`users/${uid}/credits`)
  .where('expiresAt', '>', Date.now())
  .orderBy('expiresAt', 'desc'),
);

你想知道Firestore删除索引是否存在缓存或延迟,以及是否会出现后续缓存失效导致查询突然失败的情况。

解答:

  • Firestore删除复合索引确实存在延迟生效的情况,延迟时长通常在几分钟到几小时之间,具体取决于索引的数据规模和Firestore的系统负载。在这段过渡期内,已标记删除的索引还会被临时用来处理查询请求,所以你现在的查询还能正常执行。
  • 等后端完成索引删除的同步操作后,这个查询会直接失败,抛出要求创建复合索引的错误——不存在“缓存逐步失效”的过程,而是突然无法运行。
  • 建议你立刻重新创建对应的复合索引:索引字段选择expiresAt(排序方向无需严格匹配查询的desc,Firestore会自动适配),关联集合路径设为users/{uid}/credits。索引创建后需要一段时间生效,期间查询可能仍会报错,等索引状态显示“已启用”后就能恢复正常。

内容的提问来源于stack exchange,提问作者slowloris

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 17:47:35