0

My query object is

     Query query = dbFirestore.collection("collectionName").whereEqualTo("column1", "value").whereEqualTo("column2", "value");                    
     ApiFuture<QuerySnapshot> apiFutureResults = query.get();
     System.out.println("Document size..." + piFutureResults.get().getDocuments().size()); // 4 prints value actual result object size correctly.

But

List<?> classNameList =apiFutureResults.get().toObjects(?);

Public class ClassName { //listofObjects + getter, setter Method. } // No other annotation required

My Query object is from com.google.cloud.firestore package. And ApiFuture from com.google.api.core.ApiFuture package. Using firebase-admin 7.0.1 dependency.

How to convert resultset from firestore database using ApiFuture ...toObjects() function in query result?

Note : Not using in android platform. Using as a Java web-application product.

aarav
  • 230
  • 1
  • 4
  • 21
  • It's because [Firebase API is asynchronous](https://stackoverflow.com/questions/48499310/how-to-return-a-documentsnapshot-as-a-result-of-a-method/48500679#48500679). I also think that this [resource](https://medium.com/firebase-tips-tricks/how-to-read-data-from-cloud-firestore-using-get-bf03b6ee4953) might help. – Alex Mamo Jun 14 '22 at 15:04

1 Answers1

1

For Java below approach works for me, toObjects() converts list of resultset to a collection of arraylist

    ApiFuture<QuerySnapshot> apiFutureResults = query.get();
    List<ClassName> classNameList = 
    apiFutureResults.get().toObjects(ClassName.class);
    for (ClassName object : classNameList) {
     // Object.getPropertyName();
    }
aarav
  • 230
  • 1
  • 4
  • 21