Javascript 当与多个where条件一起使用时,Firebase Firestore OrderBy不起作用

Javascript 当与多个where条件一起使用时,Firebase Firestore OrderBy不起作用,javascript,firebase,google-cloud-firestore,Javascript,Firebase,Google Cloud Firestore,我试图根据messageUpdatedAt字段(时间戳)获得一组有序的结果。 尝试了下面的代码 firebase .firestore() .collection('conversations') .where('type', '==', 'direct') .where('ids', 'array-contains', id) .orderBy('messageUpdatedAt', 'DESC') .limi

我试图根据
messageUpdatedAt
字段(时间戳)获得一组有序的结果。

尝试了下面的代码

    firebase
      .firestore()
      .collection('conversations')
      .where('type', '==', 'direct')
      .where('ids', 'array-contains', id)
      .orderBy('messageUpdatedAt', 'DESC')
      .limit(limit)
如果我运行这个,我会得到一个无序的结果集。但是如果我对数组包含
where
条件(
where('ids','array contains',id)
)进行注释,则结果是有序的(基于
messageUpdatedAt
字段)

在集合
对话
的下面添加了复合索引

type - Ascending
ids - Array
messageUpdatedAt - Descending

我做错什么了吗?是否仍然可以在不添加注释的情况下运行此操作并获得有序结果集(基于
messageUpdatedAt
字段)。

对于我来说,某些文档的orderBy字段是
未定义的,而某些文档没有该字段。这妨碍了文件的排序。我通过提供一个默认值(Unix epoch time)更新了这些字段,并使文档有序。

对于我来说,某些文档的orderBy字段未定义,而某些文档没有该字段。这妨碍了文件的排序。我通过提供一个默认值(Unix历元时间)更新了这些字段,并使文档有序。

范围筛选器只能应用于一个字段。不能使用2个字段。另外,请查看是否可以将值id放在单引号内。@根据文档,相等运算符未作为范围运算符列出。
id
的值是一个字符串。@还有什么我可以尝试的吗?范围筛选器只能应用于一个字段。不能使用2个字段。另外,请查看是否可以将值id放在单引号内。@根据文档,相等运算符未作为范围运算符列出。
id
的值是一个字符串。@还有什么我可以试试的吗?