Запрос с параметрами - AWS Amplify - Android - PullRequest
0 голосов
/ 12 января 2019

У меня проблемы с выяснением, как передать параметр в запрос. В этом случае я хочу получить пользователя по имени. Я знаю, что могу передать идентификатор, но как мне передать другое поле? Нужно ли создавать вторичный индекс?

        private AWSAppSyncClient mAWSAppSyncClient;
        mAWSAppSyncClient.query(GetUserQuery.builder().build())
                .responseFetcher(AppSyncResponseFetchers.CACHE_AND_NETWORK)
                .enqueue(userCallback);


query GetUser($id: ID!) {
  getUser(id: $id) {
    id
    userId
    name
    ...
  }
}

1 Ответ

0 голосов
/ 12 января 2019

Используйте ListUsers (ListXXXX) для запроса с несколькими параметрами.

Пример - запрос по имени = "aaa":

ModelStringFilterInput modelStringFilterInput = ModelStringFilterInput.builder().eq("aaa").build();
ModelUserFilterInput modelUserFilterInput = ModelUserFilterInput.builder().name(modelStringFilterInput).build();
mAWSAppSyncClient.query(ListUsersQuery.builder().filter(modelUserFilterInput).build())
        .responseFetcher(AppSyncResponseFetchers.CACHE_AND_NETWORK)
        .enqueue(userCallback);


private GraphQLCall.Callback<ListUsersQuery.Data> userCallback = new GraphQLCall.Callback<ListUsersQuery.Data>() {
    @Override
    public void onResponse(@Nonnull Response<ListUsersQuery.Data> response) {
        Log.d(TAG, response.data().listUsers().items().toString());
    }

    @Override
    public void onFailure(@Nonnull ApolloException e) {
        Log.d(TAG, e.toString());
    }
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...