From d3c54a5e4c6d11f3e0c9c4412eef3d0d00b290bc Mon Sep 17 00:00:00 2001 From: Sam Stern Date: Thu, 11 Jan 2018 11:43:34 -0800 Subject: [PATCH 1/2] Add snippet for Collections() Change-Id: Ifa49281ec39d408b45a353da546b57a30da9011f --- .../snippets/RetrieveDataSnippets.java | 17 +++++++++++++++++ .../snippets/RetrieveDataSnippetsIT.java | 19 +++++++++++++++++++ 2 files changed, 36 insertions(+) diff --git a/firestore/src/main/java/com/example/firestore/snippets/RetrieveDataSnippets.java b/firestore/src/main/java/com/example/firestore/snippets/RetrieveDataSnippets.java index bb83df22469..6a996153968 100644 --- a/firestore/src/main/java/com/example/firestore/snippets/RetrieveDataSnippets.java +++ b/firestore/src/main/java/com/example/firestore/snippets/RetrieveDataSnippets.java @@ -137,4 +137,21 @@ public List getAllDocuments() throws Exception { // [END fs_get_all_docs] return documents; } + + /** + * Return all subcollections of the cities/SF document. + * + * @return iterable of collection references. + */ + public Iterable getCollections() throws Exception { + // [START fs_get_collections] + Iterable collections = + db.collection("cities").document("SF").getCollections(); + + for (CollectionReference collRef : collections) { + System.out.println("Found subcollection with id: " + collRef.getId()); + } + // [END fs_get_collections] + return collections; + } } diff --git a/firestore/src/test/java/com/example/firestore/snippets/RetrieveDataSnippetsIT.java b/firestore/src/test/java/com/example/firestore/snippets/RetrieveDataSnippetsIT.java index f730329caae..38696c06604 100644 --- a/firestore/src/test/java/com/example/firestore/snippets/RetrieveDataSnippetsIT.java +++ b/firestore/src/test/java/com/example/firestore/snippets/RetrieveDataSnippetsIT.java @@ -22,10 +22,12 @@ import com.example.firestore.snippets.model.City; import com.google.api.core.ApiFuture; +import com.google.cloud.firestore.CollectionReference; import com.google.cloud.firestore.DocumentSnapshot; import com.google.cloud.firestore.Firestore; import com.google.cloud.firestore.FirestoreOptions; import com.google.cloud.firestore.QuerySnapshot; +import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Map; @@ -99,6 +101,23 @@ public void testRetrieveAllDocuments() throws Exception { && docIds.contains("BJ")); } + @Test + public void testGetSubcollections() throws Exception { + // Add a landmark subcollection + db.document("cities/SF/landmarks/example").set(new Object()).get(); + + Iterable collections = + retrieveDataSnippets.getCollections(); + + List collectionList = new ArrayList<>(); + for (CollectionReference collRef : collections) { + collectionList.add(collRef); + } + + assertEquals(collectionList.size(), 1); + assertEquals(collectionList.get(0).getId(), "landmarks"); + } + private static void deleteAllDocuments() throws Exception { ApiFuture future = db.collection("cities").get(); QuerySnapshot querySnapshot = future.get(); From 9e81e1aaaba3c417424ebbf2005a229592d96fab Mon Sep 17 00:00:00 2001 From: Sam Stern Date: Thu, 11 Jan 2018 14:43:02 -0800 Subject: [PATCH 2/2] Fix test failures Change-Id: Ia886868d51dcd2a66561845fca6fb52a220b7227 --- .../example/firestore/snippets/RetrieveDataSnippetsIT.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/firestore/src/test/java/com/example/firestore/snippets/RetrieveDataSnippetsIT.java b/firestore/src/test/java/com/example/firestore/snippets/RetrieveDataSnippetsIT.java index 38696c06604..0c06c8853c8 100644 --- a/firestore/src/test/java/com/example/firestore/snippets/RetrieveDataSnippetsIT.java +++ b/firestore/src/test/java/com/example/firestore/snippets/RetrieveDataSnippetsIT.java @@ -28,6 +28,7 @@ import com.google.cloud.firestore.FirestoreOptions; import com.google.cloud.firestore.QuerySnapshot; import java.util.ArrayList; +import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; @@ -104,7 +105,9 @@ public void testRetrieveAllDocuments() throws Exception { @Test public void testGetSubcollections() throws Exception { // Add a landmark subcollection - db.document("cities/SF/landmarks/example").set(new Object()).get(); + Map data = new HashMap<>(); + data.put("foo", "bar"); + db.document("cities/SF/landmarks/example").set(data).get(); Iterable collections = retrieveDataSnippets.getCollections();