我有一个使用 GraphQL API 和 DynamoDB 存储数据的 iOS AWS Amplify 项目。这是一个聊天应用程序。
最初,当用户登录时,他将收到对话的所有消息。如果几天后他回到应用程序,我想更新每个对话中的任何新消息。
目前我正在使用最后一条消息的日期作为未来查询的谓词。但是我想知道自上次查询以来是否有更好或更标准的方式来查询表的更改?
我没有使用数据存储。我正在管理自己的本地存储。
let keys = Message.keys
let predicate = keys.conversationID == conversationID && keys.createdAt > lastQueryDate
Amplify.API.query(request: .paginatedList(Message.self, where: predicate, limit: 100)) { [weak self]
DispatchQueue.main.async {
switch event {
case .success(let result):
switch result {
case .success(let messages):
// handle data
case .failure(let error):
print("Got failed result with \(error.errorDescription)")
}
case .failure(let error):
print("Got failed event with error \(error)")
}
}
}