예제 #1
0
        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);
        }