Google cloud firestore 子句中的Firebase.where()以与传入的数组相同的顺序返回响应

Google cloud firestore 子句中的Firebase.where()以与传入的数组相同的顺序返回响应,google-cloud-firestore,google-cloud-functions,Google Cloud Firestore,Google Cloud Functions,我有一组客户id,看起来是这样的: const customerFinal = [ '1abcadafedafa', '2eafeafaafaaa', '3knglaaljdjjj', '4afnknvknakfn', '5akfjljjmdmkk', ] 我正在通过firebase函数执行以下查询,其中我传递上面的ID数组,它将获取firestore中与传入的ID对应的所有文档: const sourceRef = db.collection('customers').where('id',

我有一组客户id,看起来是这样的:

const customerFinal = [
'1abcadafedafa',
'2eafeafaafaaa',
'3knglaaljdjjj',
'4afnknvknakfn',
'5akfjljjmdmkk',
]
我正在通过firebase函数执行以下查询,其中我传递上面的ID数组,它将获取firestore中与传入的ID对应的所有文档:

const sourceRef = db.collection('customers').where('id', 'in', customerFinal)

该查询按预期工作,我遇到的唯一问题是,从firebase返回的顺序与customerFinal数组的顺序不同。firebase是否可以按照与customerFinal数组相同的顺序返回相应的文档?我尝试过排序等,但没有任何效果。

的Firestore文档没有声明您从该查询中收到的文档的排序顺序,因此我不希望它们按照您提供值的顺序排序。因此,您应该考虑在代码中排序所得到的文档,这在性能方面不会很昂贵(因为您只能一次使用10个文档)。

函数返回如下:错误:3无效参数:ORDER BY子句不能包含具有相等筛选器ID的字段,这是否意味着我不能使用id来处理orderBy或其他游戏呢?听起来您需要在代码中进行排序。