```java String tag = "ObserveQuery"; Consumer> onQuerySnapshot = value ->{ Log.d(tag, "success on snapshot"); Log.d(tag, "number of records: " + value.getItems().size()); Log.d(tag, "sync status: " + value.getIsSynced()); }; Consumer observationStarted = value ->{ Log.d(tag, "success on cancelable"); }; Consumer onObservationError = value ->{ Log.d(tag, "error on snapshot$value"); }; Action onObservationComplete = () ->{ Log.d(tag, "complete"); }; QueryPredicate predicate = Post.TITLE.beginsWith("post").and(Post.RATING.gt(10)); QuerySortBy querySortBy = new QuerySortBy("post", "rating", QuerySortOrder.ASCENDING); List sortByList = new ArrayList(); sortByList.add(querySortBy); ObserveQueryOptions options = new ObserveQueryOptions(predicate, sortByList); Amplify.DataStore.observeQuery( Post.class, options, observationStarted, onQuerySnapshot, onObservationError, onObservationComplete ); ``` ```kotlin val tag = "ObserveQuery" val onQuerySnapshot: Consumer> = Consumer> { value: DataStoreQuerySnapshot -> Log.d(tag, "success on snapshot") Log.d(tag, "number of records: " + value.items.size) Log.d(tag, "sync status: " + value.isSynced) } val observationStarted = Consumer { _: Cancelable -> Log.d(tag, "success on cancelable") } val onObservationError = Consumer { value: DataStoreException -> Log.d(tag, "error on snapshot $value") } val onObservationComplete = Action { Log.d(tag, "complete") } val predicate: QueryPredicate = Post.TITLE.beginsWith("post").and(Post.RATING.gt(10)) val querySortBy = QuerySortBy("post", "rating", QuerySortOrder.ASCENDING) val options = ObserveQueryOptions(predicate, listOf(querySortBy)) Amplify.DataStore.observeQuery( Post::class.java, options, observationStarted, onQuerySnapshot, onObservationError, onObservationComplete ) ``` ```kotlin val querySortBy = QuerySortBy("post", "rating", QuerySortOrder.ASCENDING) Amplify.DataStore.observeQuery( Post::class, ObserveQueryOptions(Post.TITLE.beginsWith("post").and(Post.RATING.gt(10)), listOf(querySortBy)) ).onStart { Log.i("MyAmplifyApp", "Observation began") } .catch { Log.e("MyAmplifyApp", "Observation failed", it) } .onCompletion { Log.i("MyAmplifyApp", "Observation complete") } .collect { value -> Log.i("MyAmplifyApp", "Blog: ${value.items.size}") } ``` ```java QueryPredicate predicate = Post.TITLE.beginsWith("post") .and(Post.RATING.gt(10)) ; QuerySortBy querySortBy = new QuerySortBy("post", "rating", QuerySortOrder.ASCENDING); List sortByList = new ArrayList(); sortByList.add(querySortBy); ObserveQueryOptions options = new ObserveQueryOptions(predicate, sortByList); rxDataStore.observeQuery(Model.class, options).subscribe( modelDataStoreQuerySnapshot -> { Log.d("mySampleApp", "success on snapshot"); Log.d("mySampleApp", "number of records: " + modelDataStoreQuerySnapshot.getItems().size()); Log.d("mySampleApp", "sync status: " + modelDataStoreQuerySnapshot.getIsSynced()); }); ```