@Test public void testMappedGetEmptyQuery() { TestObserver<List<ChildDocData>> testObserver = RxFirestore .getCollection(emptyQueryReference, ChildDocData.class) .test(); testOnSuccessListener.getValue().onSuccess(emptyQuerySnapshot); verify(emptyQueryReference).get(); testObserver .assertNoErrors() .assertValueCount(0) .assertComplete(); }
@NonNull public static Maybe<QuerySnapshot> getCollection(@NonNull final CollectionReference ref) { return Maybe.create(new MaybeOnSubscribe<QuerySnapshot>() { @Override public void subscribe(final MaybeEmitter<QuerySnapshot> emitter) throws Exception { ref.get().addOnSuccessListener(new OnSuccessListener<QuerySnapshot>() { @Override public void onSuccess(QuerySnapshot documentSnapshots) { if (documentSnapshots.isEmpty()) { emitter.onComplete(); } else { emitter.onSuccess(documentSnapshots); } } }).addOnFailureListener(new OnFailureListener() { @Override public void onFailure(@NonNull Exception e) { if (!emitter.isDisposed()) emitter.onError(e); } }); } }); }
RxFirestore { @NonNull public static Maybe<QuerySnapshot> getCollection(@NonNull final CollectionReference ref) { return Maybe.create(new MaybeOnSubscribe<QuerySnapshot>() { @Override public void subscribe(final MaybeEmitter<QuerySnapshot> emitter) throws Exception { ref.get().addOnSuccessListener(new OnSuccessListener<QuerySnapshot>() { @Override public void onSuccess(QuerySnapshot documentSnapshots) { if (documentSnapshots.isEmpty()) { emitter.onComplete(); } else { emitter.onSuccess(documentSnapshots); } } }).addOnFailureListener(new OnFailureListener() { @Override public void onFailure(@NonNull Exception e) { if (!emitter.isDisposed()) emitter.onError(e); } }); } }); } }
RxFirestore { @NonNull public static Maybe<QuerySnapshot> getCollection(@NonNull final CollectionReference ref) { return Maybe.create(new MaybeOnSubscribe<QuerySnapshot>() { @Override public void subscribe(final MaybeEmitter<QuerySnapshot> emitter) throws Exception { ref.get().addOnSuccessListener(new OnSuccessListener<QuerySnapshot>() { @Override public void onSuccess(QuerySnapshot documentSnapshots) { if (documentSnapshots.isEmpty()) { emitter.onComplete(); } else { emitter.onSuccess(documentSnapshots); } } }).addOnFailureListener(new OnFailureListener() { @Override public void onFailure(@NonNull Exception e) { if (!emitter.isDisposed()) emitter.onError(e); } }); } }); }  }
RxFirestore { @NonNull public static Maybe<QuerySnapshot> getCollection(@NonNull final CollectionReference ref) { return Maybe.create(new MaybeOnSubscribe<QuerySnapshot>() { @Override public void subscribe(final MaybeEmitter<QuerySnapshot> emitter) throws Exception { ref.get().addOnSuccessListener(new OnSuccessListener<QuerySnapshot>() { @Override public void onSuccess(QuerySnapshot documentSnapshots) { if (documentSnapshots.isEmpty()) { emitter.onComplete(); } else { emitter.onSuccess(documentSnapshots); } } }).addOnFailureListener(new OnFailureListener() { @Override public void onFailure(@NonNull Exception e) { if (!emitter.isDisposed()) emitter.onError(e); } }); } }); }  @NonNull static Completable runTransaction(@NonNull final FirebaseFirestore firestore,
                                             @NonNull final Transaction.Function<Object> function); static Completable atomicOperation(@NonNull final WriteBatch batch); static Completable atomicOperation(@NonNull final List<WriteBatch> batches); @NonNull static Single<DocumentReference> addDocument(@NonNull final CollectionReference ref,
                                                        @NonNull final Map<String, Object> data); @NonNull static Single<DocumentReference> addDocument(@NonNull final CollectionReference ref,
                                                        @NonNull final Object pojo); @NonNull static Completable addDocumentOffline(@NonNull final CollectionReference ref,
                                                  @NonNull final Map<String, Object> data); @NonNull static Completable addDocumentOffline(@NonNull final CollectionReference ref,
                                                  @NonNull final Object pojo); @NonNull static Completable updateDocument(@NonNull final DocumentReference ref,
                                             @NonNull final Map<String, Object> updateFieldsMap); @NonNull static Completable updateDocumentOffline(@NonNull final DocumentReference ref,
                                                    @NonNull final Map<String, Object> updateFieldsMap); @NonNull static Completable updateDocument(@NonNull final DocumentReference ref,
                                             @NonNull final String field,
                                             final Object value,
                                             final Object... moreFieldsAndValues); @NonNull static Completable updateDocumentOffline(@NonNull final DocumentReference ref,
                                                    @NonNull final String field,
                                                    final Object value,
                                                    final Object... moreFieldsAndValues); @NonNull static Completable updateDocument(@NonNull final DocumentReference ref,
                                             @NonNull final FieldPath fieldPath,
                                             final Object value,
                                             final Object... moreFieldsAndValues); @NonNull static Completable updateDocumentOffline(@NonNull final DocumentReference ref,
                                                    @NonNull final FieldPath fieldPath,
                                                    final Object value,
                                                    final Object... moreFieldsAndValues); @NonNull static Completable setDocument(@NonNull final DocumentReference ref,
                                          @NonNull final Map<String, Object> setFieldsMap,
                                          @NonNull final SetOptions options); @NonNull static Completable setDocument(@NonNull final DocumentReference ref,
                                          @NonNull final Object pojo,
                                          @NonNull final SetOptions options); @NonNull static Completable setDocumentOffline(@NonNull final DocumentReference ref,
                                                 @NonNull final Object pojo,
                                                 @NonNull final SetOptions options); @NonNull static Completable setDocument(@NonNull final DocumentReference ref,
                                          @NonNull final Map<String, Object> setFieldsMap); @NonNull static Completable setDocumentOffline(@NonNull final DocumentReference ref,
                                                 @NonNull final Map<String, Object> setFieldsMap); @NonNull static Completable setDocument(@NonNull final DocumentReference ref,
                                          @NonNull final Object pojo); @NonNull static Completable setDocumentOffline(@NonNull final DocumentReference ref,
                                                 @NonNull final Object pojo); @NonNull static Completable deleteDocument(@NonNull final DocumentReference ref); @NonNull static Completable deleteDocumentOffline(@NonNull final DocumentReference ref); @NonNull static Maybe<DocumentSnapshot> getDocument(@NonNull final DocumentReference ref); @NonNull static Maybe<QuerySnapshot> getCollection(@NonNull final CollectionReference ref); @NonNull static Maybe<QuerySnapshot> getCollection(@NonNull final Query query); @NonNull static Flowable<DocumentSnapshot> observeDocumentRef(@NonNull final DocumentReference ref,
                                                                @NonNull final MetadataChanges metadataChanges,
                                                                @NonNull BackpressureStrategy strategy); @NonNull static Flowable<DocumentSnapshot> observeDocumentRef(@NonNull final DocumentReference ref,
                                                                @NonNull final Executor executor,
                                                                @NonNull final MetadataChanges metadataChanges,
                                                                @NonNull BackpressureStrategy strategy); @NonNull static Flowable<DocumentSnapshot> observeDocumentRef(@NonNull final DocumentReference ref,
                                                                @NonNull final Activity activity,
                                                                @NonNull final MetadataChanges metadataChanges,
                                                                @NonNull BackpressureStrategy strategy); @NonNull static Flowable<QuerySnapshot> observeQueryRef(@NonNull final Query ref,
                                                          @NonNull final MetadataChanges metadataChanges,
                                                          @NonNull BackpressureStrategy strategy); @NonNull static Flowable<QuerySnapshot> observeQueryRef(@NonNull final Query ref,
                                                          @NonNull final Executor executor,
                                                          @NonNull final MetadataChanges metadataChanges,
                                                          @NonNull BackpressureStrategy strategy); @NonNull static Flowable<QuerySnapshot> observeQueryRef(@NonNull final Query ref,
                                                          @NonNull final Activity activity,
                                                          @NonNull final MetadataChanges metadataChanges,
                                                          @NonNull BackpressureStrategy strategy); @NonNull static Flowable<DocumentSnapshot> observeDocumentRef(@NonNull final DocumentReference ref); @NonNull static Flowable<DocumentSnapshot> observeDocumentRef(@NonNull final DocumentReference ref,
                                                                @NonNull final Executor executor); @NonNull static Flowable<DocumentSnapshot> observeDocumentRef(@NonNull final DocumentReference ref,
                                                                @NonNull final Activity activity); @NonNull static Flowable<DocumentSnapshot> observeDocumentRef(@NonNull final DocumentReference ref,
                                                                @NonNull final Executor executor,
                                                                @NonNull BackpressureStrategy strategy); @NonNull static Flowable<DocumentSnapshot> observeDocumentRef(@NonNull final DocumentReference ref,
                                                                @NonNull final Activity activity,
                                                                @NonNull BackpressureStrategy strategy); @NonNull static Flowable<DocumentSnapshot> observeDocumentRef(@NonNull final DocumentReference ref,
                                                                @NonNull final Executor executor,
                                                                @NonNull final MetadataChanges metadataChanges); @NonNull static Flowable<DocumentSnapshot> observeDocumentRef(@NonNull final DocumentReference ref,
                                                                @NonNull final Activity activity,
                                                                @NonNull final MetadataChanges metadataChanges); @NonNull static Flowable<T> observeDocumentRef(@NonNull final DocumentReference ref,
                                                     @NonNull final Class<T> clazz); @NonNull static Flowable<T> observeDocumentRef(@NonNull final DocumentReference ref,
                                                     @NonNull final Function<? super DocumentSnapshot, ? extends T> mapper); @NonNull static Flowable<T> observeDocumentRef(@NonNull final DocumentReference ref,
                                                     @NonNull BackpressureStrategy strategy,
                                                     @NonNull final Class<T> clazz); @NonNull static Flowable<T> observeDocumentRef(@NonNull final DocumentReference ref,
                                                     @NonNull BackpressureStrategy strategy,
                                                     @NonNull final Function<? super DocumentSnapshot, ? extends T> mapper); @NonNull static Flowable<T> observeDocumentRef(@NonNull final DocumentReference ref,
                                                     @NonNull BackpressureStrategy strategy,
                                                     @NonNull final Executor executor,
                                                     @NonNull final Function<? super DocumentSnapshot, ? extends T> mapper); @NonNull static Flowable<T> observeDocumentRef(@NonNull final DocumentReference ref,
                                                     @NonNull BackpressureStrategy strategy,
                                                     @NonNull final Activity activity,
                                                     @NonNull final Function<? super DocumentSnapshot, ? extends T> mapper); @NonNull static Flowable<T> observeDocumentRef(@NonNull final DocumentReference ref,
                                                     @NonNull BackpressureStrategy strategy,
                                                     @NonNull final Executor executor,
                                                     @NonNull final MetadataChanges metadataChanges,
                                                     @NonNull final Function<? super DocumentSnapshot, ? extends T> mapper); @NonNull static Flowable<T> observeDocumentRef(@NonNull final DocumentReference ref,
                                                     @NonNull BackpressureStrategy strategy,
                                                     @NonNull final Activity activity,
                                                     @NonNull final MetadataChanges metadataChanges,
                                                     @NonNull final Function<? super DocumentSnapshot, ? extends T> mapper); @NonNull static Flowable<QuerySnapshot> observeQueryRef(@NonNull final Query ref); @NonNull static Flowable<QuerySnapshot> observeQueryRef(@NonNull final Query ref,
                                                          @NonNull final Executor executor); @NonNull static Flowable<QuerySnapshot> observeQueryRef(@NonNull final Query ref,
                                                          @NonNull final Activity activity); @NonNull static Flowable<QuerySnapshot> observeQueryRef(@NonNull final Query ref,
                                                          @NonNull final Executor executor,
                                                          @NonNull BackpressureStrategy strategy); @NonNull static Flowable<QuerySnapshot> observeQueryRef(@NonNull final Query ref,
                                                          @NonNull final Activity activity,
                                                          @NonNull BackpressureStrategy strategy); @NonNull static Flowable<QuerySnapshot> observeQueryRef(@NonNull final Query ref,
                                                          @NonNull final Executor executor,
                                                          @NonNull final MetadataChanges metadataChanges); @NonNull static Flowable<QuerySnapshot> observeQueryRef(@NonNull final Query ref,
                                                          @NonNull final Activity activity,
                                                          @NonNull final MetadataChanges metadataChanges); @NonNull static Flowable<List<T>> observeQueryRef(@NonNull final Query ref,
                                                        @NonNull final Class<T> clazz); @NonNull static Flowable<List<T>> observeQueryRef(@NonNull final Query ref,
                                                        @NonNull final Function<? super QuerySnapshot, ? extends List<T>> mapper); @NonNull static Flowable<List<T>> observeQueryRef(@NonNull final Query ref,
                                                        @NonNull BackpressureStrategy strategy,
                                                        @NonNull final Class<T> clazz); @NonNull static Flowable<List<T>> observeQueryRef(@NonNull final Query ref,
                                                        @NonNull BackpressureStrategy strategy,
                                                        @NonNull final Function<? super QuerySnapshot, ? extends List<T>> mapper); @NonNull static Flowable<T> observeQueryRef(@NonNull final Query ref,
                                                  @NonNull BackpressureStrategy strategy,
                                                  @NonNull final Executor executor,
                                                  @NonNull final Function<? super QuerySnapshot, ? extends T> mapper); @NonNull static Flowable<T> observeQueryRef(@NonNull final Query ref,
                                                  @NonNull BackpressureStrategy strategy,
                                                  @NonNull final Activity activity,
                                                  @NonNull final Function<? super QuerySnapshot, ? extends T> mapper); @NonNull static Flowable<T> observeQueryRef(@NonNull final Query ref,
                                                  @NonNull BackpressureStrategy strategy,
                                                  @NonNull final Executor executor,
                                                  @NonNull final MetadataChanges metadataChanges,
                                                  @NonNull final Function<? super QuerySnapshot, ? extends T> mapper); @NonNull static Flowable<T> observeQueryRef(@NonNull final Query ref,
                                                  @NonNull BackpressureStrategy strategy,
                                                  @NonNull final Activity activity,
                                                  @NonNull final MetadataChanges metadataChanges,
                                                  @NonNull final Function<? super QuerySnapshot, ? extends T> mapper); @NonNull static Maybe<List<T>> getCollection(@NonNull final CollectionReference ref,
                                                   @NonNull final Class<T> clazz); @NonNull static Maybe<List<T>> getCollection(CollectionReference ref,
                                                    DocumentSnapshotMapper<QuerySnapshot,
                                                        List<T>> mapper); @NonNull static Maybe<List<T>> getCollection(@NonNull final Query query,
                                                   @NonNull final Class<T> clazz); @NonNull static Maybe<List<T>> getCollection(@NonNull Query query,
                                                    @NonNull DocumentSnapshotMapper<QuerySnapshot,
                                                        List<T>> mapper); @NonNull static Maybe<T> getDocument(@NonNull final DocumentReference ref,
                                           @NonNull final Class<T> clazz); @NonNull static Maybe<T> getDocument(@NonNull final DocumentReference ref,
                                           @NonNull final Function<? super DocumentSnapshot, ? extends T> mapper); }
RxFirestore { @NonNull public static Maybe<QuerySnapshot> getCollection(@NonNull final CollectionReference ref) { return Maybe.create(new MaybeOnSubscribe<QuerySnapshot>() { @Override public void subscribe(final MaybeEmitter<QuerySnapshot> emitter) throws Exception { ref.get().addOnSuccessListener(new OnSuccessListener<QuerySnapshot>() { @Override public void onSuccess(QuerySnapshot documentSnapshots) { if (documentSnapshots.isEmpty()) { emitter.onComplete(); } else { emitter.onSuccess(documentSnapshots); } } }).addOnFailureListener(new OnFailureListener() { @Override public void onFailure(@NonNull Exception e) { if (!emitter.isDisposed()) emitter.onError(e); } }); } }); }  @NonNull static Completable runTransaction(@NonNull final FirebaseFirestore firestore,
                                             @NonNull final Transaction.Function<Object> function); static Completable atomicOperation(@NonNull final WriteBatch batch); static Completable atomicOperation(@NonNull final List<WriteBatch> batches); @NonNull static Single<DocumentReference> addDocument(@NonNull final CollectionReference ref,
                                                        @NonNull final Map<String, Object> data); @NonNull static Single<DocumentReference> addDocument(@NonNull final CollectionReference ref,
                                                        @NonNull final Object pojo); @NonNull static Completable addDocumentOffline(@NonNull final CollectionReference ref,
                                                  @NonNull final Map<String, Object> data); @NonNull static Completable addDocumentOffline(@NonNull final CollectionReference ref,
                                                  @NonNull final Object pojo); @NonNull static Completable updateDocument(@NonNull final DocumentReference ref,
                                             @NonNull final Map<String, Object> updateFieldsMap); @NonNull static Completable updateDocumentOffline(@NonNull final DocumentReference ref,
                                                    @NonNull final Map<String, Object> updateFieldsMap); @NonNull static Completable updateDocument(@NonNull final DocumentReference ref,
                                             @NonNull final String field,
                                             final Object value,
                                             final Object... moreFieldsAndValues); @NonNull static Completable updateDocumentOffline(@NonNull final DocumentReference ref,
                                                    @NonNull final String field,
                                                    final Object value,
                                                    final Object... moreFieldsAndValues); @NonNull static Completable updateDocument(@NonNull final DocumentReference ref,
                                             @NonNull final FieldPath fieldPath,
                                             final Object value,
                                             final Object... moreFieldsAndValues); @NonNull static Completable updateDocumentOffline(@NonNull final DocumentReference ref,
                                                    @NonNull final FieldPath fieldPath,
                                                    final Object value,
                                                    final Object... moreFieldsAndValues); @NonNull static Completable setDocument(@NonNull final DocumentReference ref,
                                          @NonNull final Map<String, Object> setFieldsMap,
                                          @NonNull final SetOptions options); @NonNull static Completable setDocument(@NonNull final DocumentReference ref,
                                          @NonNull final Object pojo,
                                          @NonNull final SetOptions options); @NonNull static Completable setDocumentOffline(@NonNull final DocumentReference ref,
                                                 @NonNull final Object pojo,
                                                 @NonNull final SetOptions options); @NonNull static Completable setDocument(@NonNull final DocumentReference ref,
                                          @NonNull final Map<String, Object> setFieldsMap); @NonNull static Completable setDocumentOffline(@NonNull final DocumentReference ref,
                                                 @NonNull final Map<String, Object> setFieldsMap); @NonNull static Completable setDocument(@NonNull final DocumentReference ref,
                                          @NonNull final Object pojo); @NonNull static Completable setDocumentOffline(@NonNull final DocumentReference ref,
                                                 @NonNull final Object pojo); @NonNull static Completable deleteDocument(@NonNull final DocumentReference ref); @NonNull static Completable deleteDocumentOffline(@NonNull final DocumentReference ref); @NonNull static Maybe<DocumentSnapshot> getDocument(@NonNull final DocumentReference ref); @NonNull static Maybe<QuerySnapshot> getCollection(@NonNull final CollectionReference ref); @NonNull static Maybe<QuerySnapshot> getCollection(@NonNull final Query query); @NonNull static Flowable<DocumentSnapshot> observeDocumentRef(@NonNull final DocumentReference ref,
                                                                @NonNull final MetadataChanges metadataChanges,
                                                                @NonNull BackpressureStrategy strategy); @NonNull static Flowable<DocumentSnapshot> observeDocumentRef(@NonNull final DocumentReference ref,
                                                                @NonNull final Executor executor,
                                                                @NonNull final MetadataChanges metadataChanges,
                                                                @NonNull BackpressureStrategy strategy); @NonNull static Flowable<DocumentSnapshot> observeDocumentRef(@NonNull final DocumentReference ref,
                                                                @NonNull final Activity activity,
                                                                @NonNull final MetadataChanges metadataChanges,
                                                                @NonNull BackpressureStrategy strategy); @NonNull static Flowable<QuerySnapshot> observeQueryRef(@NonNull final Query ref,
                                                          @NonNull final MetadataChanges metadataChanges,
                                                          @NonNull BackpressureStrategy strategy); @NonNull static Flowable<QuerySnapshot> observeQueryRef(@NonNull final Query ref,
                                                          @NonNull final Executor executor,
                                                          @NonNull final MetadataChanges metadataChanges,
                                                          @NonNull BackpressureStrategy strategy); @NonNull static Flowable<QuerySnapshot> observeQueryRef(@NonNull final Query ref,
                                                          @NonNull final Activity activity,
                                                          @NonNull final MetadataChanges metadataChanges,
                                                          @NonNull BackpressureStrategy strategy); @NonNull static Flowable<DocumentSnapshot> observeDocumentRef(@NonNull final DocumentReference ref); @NonNull static Flowable<DocumentSnapshot> observeDocumentRef(@NonNull final DocumentReference ref,
                                                                @NonNull final Executor executor); @NonNull static Flowable<DocumentSnapshot> observeDocumentRef(@NonNull final DocumentReference ref,
                                                                @NonNull final Activity activity); @NonNull static Flowable<DocumentSnapshot> observeDocumentRef(@NonNull final DocumentReference ref,
                                                                @NonNull final Executor executor,
                                                                @NonNull BackpressureStrategy strategy); @NonNull static Flowable<DocumentSnapshot> observeDocumentRef(@NonNull final DocumentReference ref,
                                                                @NonNull final Activity activity,
                                                                @NonNull BackpressureStrategy strategy); @NonNull static Flowable<DocumentSnapshot> observeDocumentRef(@NonNull final DocumentReference ref,
                                                                @NonNull final Executor executor,
                                                                @NonNull final MetadataChanges metadataChanges); @NonNull static Flowable<DocumentSnapshot> observeDocumentRef(@NonNull final DocumentReference ref,
                                                                @NonNull final Activity activity,
                                                                @NonNull final MetadataChanges metadataChanges); @NonNull static Flowable<T> observeDocumentRef(@NonNull final DocumentReference ref,
                                                     @NonNull final Class<T> clazz); @NonNull static Flowable<T> observeDocumentRef(@NonNull final DocumentReference ref,
                                                     @NonNull final Function<? super DocumentSnapshot, ? extends T> mapper); @NonNull static Flowable<T> observeDocumentRef(@NonNull final DocumentReference ref,
                                                     @NonNull BackpressureStrategy strategy,
                                                     @NonNull final Class<T> clazz); @NonNull static Flowable<T> observeDocumentRef(@NonNull final DocumentReference ref,
                                                     @NonNull BackpressureStrategy strategy,
                                                     @NonNull final Function<? super DocumentSnapshot, ? extends T> mapper); @NonNull static Flowable<T> observeDocumentRef(@NonNull final DocumentReference ref,
                                                     @NonNull BackpressureStrategy strategy,
                                                     @NonNull final Executor executor,
                                                     @NonNull final Function<? super DocumentSnapshot, ? extends T> mapper); @NonNull static Flowable<T> observeDocumentRef(@NonNull final DocumentReference ref,
                                                     @NonNull BackpressureStrategy strategy,
                                                     @NonNull final Activity activity,
                                                     @NonNull final Function<? super DocumentSnapshot, ? extends T> mapper); @NonNull static Flowable<T> observeDocumentRef(@NonNull final DocumentReference ref,
                                                     @NonNull BackpressureStrategy strategy,
                                                     @NonNull final Executor executor,
                                                     @NonNull final MetadataChanges metadataChanges,
                                                     @NonNull final Function<? super DocumentSnapshot, ? extends T> mapper); @NonNull static Flowable<T> observeDocumentRef(@NonNull final DocumentReference ref,
                                                     @NonNull BackpressureStrategy strategy,
                                                     @NonNull final Activity activity,
                                                     @NonNull final MetadataChanges metadataChanges,
                                                     @NonNull final Function<? super DocumentSnapshot, ? extends T> mapper); @NonNull static Flowable<QuerySnapshot> observeQueryRef(@NonNull final Query ref); @NonNull static Flowable<QuerySnapshot> observeQueryRef(@NonNull final Query ref,
                                                          @NonNull final Executor executor); @NonNull static Flowable<QuerySnapshot> observeQueryRef(@NonNull final Query ref,
                                                          @NonNull final Activity activity); @NonNull static Flowable<QuerySnapshot> observeQueryRef(@NonNull final Query ref,
                                                          @NonNull final Executor executor,
                                                          @NonNull BackpressureStrategy strategy); @NonNull static Flowable<QuerySnapshot> observeQueryRef(@NonNull final Query ref,
                                                          @NonNull final Activity activity,
                                                          @NonNull BackpressureStrategy strategy); @NonNull static Flowable<QuerySnapshot> observeQueryRef(@NonNull final Query ref,
                                                          @NonNull final Executor executor,
                                                          @NonNull final MetadataChanges metadataChanges); @NonNull static Flowable<QuerySnapshot> observeQueryRef(@NonNull final Query ref,
                                                          @NonNull final Activity activity,
                                                          @NonNull final MetadataChanges metadataChanges); @NonNull static Flowable<List<T>> observeQueryRef(@NonNull final Query ref,
                                                        @NonNull final Class<T> clazz); @NonNull static Flowable<List<T>> observeQueryRef(@NonNull final Query ref,
                                                        @NonNull final Function<? super QuerySnapshot, ? extends List<T>> mapper); @NonNull static Flowable<List<T>> observeQueryRef(@NonNull final Query ref,
                                                        @NonNull BackpressureStrategy strategy,
                                                        @NonNull final Class<T> clazz); @NonNull static Flowable<List<T>> observeQueryRef(@NonNull final Query ref,
                                                        @NonNull BackpressureStrategy strategy,
                                                        @NonNull final Function<? super QuerySnapshot, ? extends List<T>> mapper); @NonNull static Flowable<T> observeQueryRef(@NonNull final Query ref,
                                                  @NonNull BackpressureStrategy strategy,
                                                  @NonNull final Executor executor,
                                                  @NonNull final Function<? super QuerySnapshot, ? extends T> mapper); @NonNull static Flowable<T> observeQueryRef(@NonNull final Query ref,
                                                  @NonNull BackpressureStrategy strategy,
                                                  @NonNull final Activity activity,
                                                  @NonNull final Function<? super QuerySnapshot, ? extends T> mapper); @NonNull static Flowable<T> observeQueryRef(@NonNull final Query ref,
                                                  @NonNull BackpressureStrategy strategy,
                                                  @NonNull final Executor executor,
                                                  @NonNull final MetadataChanges metadataChanges,
                                                  @NonNull final Function<? super QuerySnapshot, ? extends T> mapper); @NonNull static Flowable<T> observeQueryRef(@NonNull final Query ref,
                                                  @NonNull BackpressureStrategy strategy,
                                                  @NonNull final Activity activity,
                                                  @NonNull final MetadataChanges metadataChanges,
                                                  @NonNull final Function<? super QuerySnapshot, ? extends T> mapper); @NonNull static Maybe<List<T>> getCollection(@NonNull final CollectionReference ref,
                                                   @NonNull final Class<T> clazz); @NonNull static Maybe<List<T>> getCollection(CollectionReference ref,
                                                    DocumentSnapshotMapper<QuerySnapshot,
                                                        List<T>> mapper); @NonNull static Maybe<List<T>> getCollection(@NonNull final Query query,
                                                   @NonNull final Class<T> clazz); @NonNull static Maybe<List<T>> getCollection(@NonNull Query query,
                                                    @NonNull DocumentSnapshotMapper<QuerySnapshot,
                                                        List<T>> mapper); @NonNull static Maybe<T> getDocument(@NonNull final DocumentReference ref,
                                           @NonNull final Class<T> clazz); @NonNull static Maybe<T> getDocument(@NonNull final DocumentReference ref,
                                           @NonNull final Function<? super DocumentSnapshot, ? extends T> mapper);  }