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

Firebase Firestore对两个字段执行orderBy排序报错问题咨询

问题根源

你调用orderBy方法的语法不符合Firestore的接口规范:

  • 单个orderBy方法仅接收两个参数:第一个为待排序的字段名,第二个为可选的排序方向(仅支持asc升序/desc降序,默认值为asc)
  • 你当前把第二个排序字段fecha当作排序方向传入了第一个orderBy调用,因此触发参数类型错误。
修复方案

要实现多字段组合排序,需要链式调用多次orderBy方法,排序优先级和调用顺序保持一致,修改后代码如下:

useEffect(() => { 
    const usuariosRef = db.collectionGroup('pedidos')
    // 先按acudiente升序排列,再按fecha升序排列,需要降序则给对应orderBy传入第二个参数"desc"
    usuariosRef.orderBy("acudiente").orderBy("fecha").onSnapshot(snapshot => {
      const tempData = [];
      snapshot.forEach((doc) => {
        const data = doc.data();
        tempData.push(data);
      });
      setPedidos(tempData);
    })
}, []);
注意事项

Firestore多字段排序要求提前创建对应规则的复合索引,首次执行该查询如果触发缺少复合索引的报错,按照报错提示创建对应复合索引,等待1-2分钟索引生效后即可正常返回结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 09:36:03