плохо знакомы с AWS.Это может быть простой проблемой, но я застрял.
У меня есть таблица с несколькими строками в DynamoDB.Используя AWS Amplify, я запускаю запрос в своем коде Android, чтобы получить эти данные, но он даст мне только самую первую строку.
Вот мой метод onCreate
mAWSAppSyncClient = AWSAppSyncClient.builder()
.context(getApplicationContext())
.awsConfiguration(new AWSConfiguration(getApplicationContext()))
.cognitoUserPoolsAuthProvider(new CognitoUserPoolsAuthProvider() {
@Override
public String getLatestAuthToken() {
try {
return AWSMobileClient.getInstance().getTokens().getIdToken().getTokenString();
} catch (Exception e) {
Log.e("APPSYNC_ERROR", e.getLocalizedMessage());
return e.getLocalizedMessage();
}
}
})
.build();
findUser();
getItems();
Метод findUser ()
public void findUser() {
username = User.USERNAME;
runQuery();
}
Метод runQuery ()
public void runQuery() {
ModelStringFilterInput modelStringFilterInput = ModelStringFilterInput.builder().eq(username).build();
ModelOrderFilterInput modelOrderFilterInput = ModelOrderFilterInput.builder().orderName(modelStringFilterInput).build();
mAWSAppSyncClient.query(ListOrdersQuery.builder().filter(modelOrderFilterInput).build())
.responseFetcher(AppSyncResponseFetchers.CACHE_AND_NETWORK)
.enqueue(orderCallback);
}
И наконецметод GraphQLCall
private GraphQLCall.Callback<ListOrdersQuery.Data> orderCallback = new GraphQLCall.Callback<ListOrdersQuery.Data>() {
@Override
public void onResponse(@Nonnull Response<ListOrdersQuery.Data> response)
{
for (int i =0; i < response.data().listOrders().items().size(); i++) {
response.data().listOrders().items().forEach(orderName ->{Log.d("list", orderName.toString());});
}
@Override
public void onFailure(@Nonnull ApolloException e) {
Log.d("eeeeerror", e.toString());
}
};
У меня более 18 строк данных в одной таблице с несколькими столбцами, но только первая строка получена.
Что я делаю не так?