private IList <DocumentSnapshot> ExecuteQueries() { IList <DocumentSnapshot> result = null; // Firestore does not currently support performing multiple // inequality filters on different properties for the same query // As a workaround, we execute each query separately and then // intersect the results foreach (Query query in queries) { QuerySnapshot querySnapshot = query.GetSnapshotAsync().Result; IList <DocumentSnapshot> documentSnapshots = new List <DocumentSnapshot>(querySnapshot.Documents); if (result == null) { result = documentSnapshots; } else { result = ListUtils.IntersectWith(result, documentSnapshots); } } if (result == null) { result = new List <DocumentSnapshot>(collection.GetSnapshotAsync().Result.Documents); } return(result); }