Удалить / Очистить политику кэширования из AWSAppSyncClient в Android - PullRequest
0 голосов
/ 30 октября 2019

Я пытаюсь удалить / очистить механизм кэширования из AWSAppSyncClient.

Теперь проблема в том, что я получаю значение, которое сохраняется или запрашивается раньше (оно кэширует значение и возвращает это значение)

что я хочу, это должно вернуть значение из API. (Не должен кэшировать значение).

я пробовал это:

AWSAppSyncClient.builder()
            .context(syncPort.androidContext())
            .awsConfiguration(AWSConfiguration(syncPort.androidContext()))
            .build()
            .clearCaches(ClearCacheOptions.builder().clearSubscriptions().build())

Код запроса:

override fun getMedication(date: String): Single<SampleAdministration> {
return Single.create<SampleAdministration> { emitter ->
    client.query(
        GetSampleQuery.builder().date(date).build()
    ).enqueue(object : GraphQLCall.Callback<GetSampleQuery.Data>() {
        override fun onFailure(e: ApolloException) {
            emitter.onError(e)
        }

        override fun onResponse(response: Response<GetSampleQuery.Data>) {
            val data = response.data()?.sample
            val sampleAdministration = object : SampleAdministration {
                override var date: String? =
                    data?.date()
            }
            emitter.onSuccess(sampleAdministration)
        }
    })
}

}

1 Ответ

0 голосов
/ 31 октября 2019

я удалил clearCaches из AWSAppSyncClient.builder ()

и добавил responseFetcher в запросе

 override fun getMedication(date: String): Single<SampleAdministration> {
return Single.create<SampleAdministration> { emitter ->
    client.query(
        GetSampleQuery.builder().date(date).build()
    ).responseFetcher(AppSyncResponseFetchers.NETWORK_ONLY).enqueue(object : GraphQLCall.Callback<GetSampleQuery.Data>() {
        override fun onFailure(e: ApolloException) {
            emitter.onError(e)
        }override fun onResponse(response: Response<GetSampleQuery.Data>) {
            val data = response.data()?.sample
            val sampleAdministration = object : SampleAdministration {
                override var date: String? =
                    data?.date()
            }
            emitter.onSuccess(sampleAdministration)
        }
    })
}
...