Firebase查询在模拟器正常,部署云端返回空结果求助
Firebase查询云端返回空结果但模拟器正常
我正在运行Firebase查询以获取属于某一分类的产品,在模拟器中一切正常,但部署到云端后查询返回空结果(queryProducts.empty === true),无法获取任何产品。
相关代码
const prodRef = collection(firestore, ownerPath + '/products') const prodQuery = query( prodRef, where('category', '==', category.id), where('available', '>', 0) ) const queryProducts = await getDocs(prodQuery)
已做的排查
- 已在Firestore中创建对应查询的索引(索引字段为
category升序、available升序,覆盖目标products集合) - 反复确认目标数据存在,且所有ID均正确匹配
- 了解到模拟器与云端环境存在行为差异相关问题,但仍未解决当前问题
更新测试结果
我进行了几项测试:
- 仅按
available查询(where('available', '>', 0))能正常返回产品 - 同时按
category和available的原查询,以及仅按category的查询,均返回空结果
手动指定某产品的category ID(l6pIKdB5E13uTXepSm1P)写入查询后,仍返回空结果:
const prodQuery = query( prodRef, where('category', '==', "l6pIKdB5E13uTXepSm1P"), where('available', '>', 0) )
我推测问题核心在于索引:模拟器无需索引即可运行查询,但云端环境必须依赖索引,目前尚未找到可行的解决办法。
内容的提问来源于stack exchange,提问作者KarlsMaranjs
相关产品推荐
相关产品推荐

