Я использую AWS AppSyn c для разработки iOS Приложение от Swift. И поэтому я записываю Данные в AWS DynamoDB.
Я могу использовать GraphQL Operarion 「Создать ~~ Мутацию「 「Обновить ~~ Мутацию「 「Удалить ~~ Мутацию」, чтобы я мог подтвердить создание, обновление, удаление данных. Если быть точным, удаленные данные исчезли из консоли DynamoDB, я могу это проверить. Проблема в том, что когда я обновляю данные запроса, я могу только запрашивать данные ДО обновления.
// schema.GraphQL
type Todo @model {
id: ID!
name: String!
description: String
}
@IBOutlet weak var idText: UITextField!
@IBOutlet weak var nameText: UITextField!
@IBOutlet weak var desText: UITextField!
@IBAction func Update(_ sender: Any) {
let up = UpdateTodoInput.init(id: idText.text!, name: nameText.text!, description: desText.text)
appSyncClient?.perform(mutation: UpdateTodoMutation(input: up)) { (result, error) in
if let error = error as? AWSAppSyncClientError {
print("Error occurred: \(error.localizedDescription )")
}
if let resultError = result?.errors {
print("Error saving the item on server: \(resultError)")
return
}
print(result?.data?.updateTodo)
}
}
@IBAction func Get(_ sender: Any) {
let get = GetTodoQuery.init(id: idText.text!)
appSyncClient?.fetch(query: get) { (result, error) in
if error != nil {
print(error?.localizedDescription ?? "")
return
}
print(result?.data?.getTodo)
self.did = result?.data?.getTodo
print(self.did)
DispatchQueue.main.async {
self.nameText.text! = result?.data?.getTodo?.name as! String
self.desText.text! = result?.data?.getTodo?.description as! String
}
}
}
reampreamble〜
Свойства, которые я хочу обновить, можно обновить, введя значение 「idText「 「nameText」 「desText」
когда я запускаю Get(_ sender: Any)
, я могу получить данные из DynamoDB с помощью таблицы UNIQUE ID.
и добиться успеха в получении данных, 「nameText」 「 desText 」, оба свойства UITextFiled.text
изменяются.
Получение данных name
, description
установлено на nameText.text
, desText.text
.
〜preamble〜
когда я запускаю Update(_ sender: Any)
для существующих данных.
Я могу подтвердить обновленные данные с помощью консоли DynamoDB, затем я запускаю Get(_ sender: Any)
для данных
, то есть для получения данных ОБНОВЛЕНИЯ! но я могу только получить ОБНОВЛЕННЫЕ данные!
, например, Создать эти данные ↓
CreateTodoInput.init(id: "123", name: "daigo", description: "ichikawa")
И я собираюсь обновить Созданные данные это Update(_ sender: Any)
idText.text = "123"
nameText.text = "Jack"
desText.text = "Sparo"
UpdateTodoInput.init(id: idText.text!, name: nameText.text!, description: desText.text)
, тогда я получу обновленные данные по Get(_ sender: Any)
idText.text = "123"
GetTodoQuery.init(id: idText.text!)
Я могу только получить это
(id: "123", name: "daigo", description: "ichikawa")
, но я проверил AWS DynamoDB Console, Обновленные данные представлены. почему это случилось?