現在AWS AppSyncを用いた開発の学習をしています。
データをmutationして、updateを行いqueryという初歩的な動作を検証しています。
しかし、queryしたデータが更新されたデータではなく最初にmutationしたデータのままです。
Webで確認してもデータは更新されているのですが、他に行わなければいけない工程があるのでしょうか。
コードは下記の通りです。
pushDataToDynamoボタンより最初にデータをmutationし、
pushOKボタンによりupdateおよびqueryを行なっています。
pushOKボタンを押すことで変数approval_NUMをカウントアップする使用ですが、何度押しても最初の1のままになります。webで確認するとカウントアップしているのですが、、、
アドバイスいただけたら幸いです。
Swift
1 2 @IBAction func pushDataToDynamo(_ sender: Any) { 3 runMutation() 4 } 5 func runMutation(){ 6 let mutationInput = CreateTodoInput(id:"NO", name: "Use AppSync", description:"1") 7 appSyncClient?.perform(mutation: CreateTodoMutation(input: mutationInput)) { (result, error) in 8 if let error = error as? AWSAppSyncClientError { 9 print("Error occurred: (error.localizedDescription )") 10 } 11 if let resultError = result?.errors { 12 print("Error saving the item on server: (resultError)") 13 return 14 } 15 } 16 } 17 18var approval_NUM:Int=0 19 @IBAction func pushOK(_ sender: Any) { 20 runQuery() 21 approval_NUM+=1 22 let updateInput = UpdateTodoInput(id:"NO", name: "Use AppSync", description:String(approval_NUM)) 23 appSyncClient?.perform(mutation: UpdateTodoMutation(input: updateInput)) { (result, error) in 24 if let error = error as? AWSAppSyncClientError { 25 print("Error occurred: (error.localizedDescription )") 26 } 27 if let resultError = result?.errors { 28 print("Error saving the item on server: (resultError)") 29 return 30 } 31 } 32 DispatchQueue.main.async { 33 self.appSyncClient?.fetch(query: GetTodoQuery(id:"NO")) {(result, error) in 34 if error != nil { 35 print(error?.localizedDescription ?? "") 36 } 37 print(result?.data?.getTodo?.description) 38 DispatchQueue.main.async { 39 print(result?.data?.getTodo?.description) 40 } 41 } 42 } 43 }
あなたの回答
tips
プレビュー