要處理顯示的查詢,請執行以下操作: var query = ref.collection("data/devices");if (params.region) query = query.where("region", "==", params.region);if (params.color) query = query.where("color", "==", params.color);query = query.orderBy("price", "ASC "); 您需要創建兩個復合索引: 地區ASC,價格ASC 顏色ASC,價格ASC 這兩個單獨的索引將被合并,并且能夠處理所需的組合,即使同時使用region和/或color。例如: db.collection('whatever') .where('region', '==', 'A') .where('color', '==', 'B') .where('prop3', '==', 'C') .where('prop4', '==', 'D') .orderBy('price', 'ASC'); 如果該查詢正是您將一直使用的查詢,那么您可以創建一個包含5個字段的復合索引。但是,如果“where”子句是可選的,則需要創建4個不同的復合索引: 地區ASC,價格ASC 顏色ASC,價格ASC 建議3 ASC,價格ASC pro