【发布时间】:2020-09-20 03:36:11
【问题描述】:
对于 Android 应用程序,我曾经在使用 GSI 时使用 AppSync 客户端从 DynamoDB 中查询数据。如今,我正在尝试使用 Amplify Libraries 来利用 DataStore 功能。阅读文档和代码后,我意识到 Amplify 库不支持此类查询,除非我弄错了。到目前为止,我发现的唯一方法是使用列表并对结果应用过滤器,但考虑到读取容量,这并不理想。有人找到有关此问题的文件吗?在这种情况下可以使用任何有用的插件吗?
有关说明,请参阅 AWS 文档中的以下架构:
type Item @model
@key(fields: ["orderId", "status", "createdAt"])
@key(name: "ByStatus", fields: ["status", "createdAt"], queryField: "itemsByStatus") {
orderId: ID!
status: Status!
createdAt: AWSDateTime!
name: String!
}
enum Status {
DELIVERED
IN_TRANSIT
PENDING
UNKNOWN
}
使用 AppSync,您可以通过这种方式根据 ByStatus GSI 查询数据:
appSyncClient.query(itemsByStatusQuery.builder().build())
现在,我正在使用 Amplify API 类别。在我看来,我只能使用getItem 或listItems 查询。
我想知道是否有办法对 Amplify 库做同样的事情。
【问题讨论】:
标签: android graphql aws-amplify aws-appsync dynamodb-queries