在GraphQL中编辑类时的正确工作流程

xiaolingxiao

我使用的是xcode 11.4和swift4,目前正在使用AWS GraphQL并正在学习正确的工作流程。我的amplify.xyz配置设置为

push=true
modelgen=true
profile=default
envName=amplify

这样就可以在创建/编辑模型时生成它们。schema.graphql我定义用户:

type User @model {
    id: ID!
    firstName  : String!
    lastName   : String!
    handle     : String!
    email      : String!
}

并构建/运行该应用程序,并能够user按预期创建/读取实例然后,假设我添加一个简单的新字段,User @model以便拥有:

type User @model {
    id: ID!
    firstName  : String!
    lastName   : String!
    handle     : String!
    email      : String!
    blank      : String!
}

然后清理生成文件夹,并重新生成应用程序。然后我得到了莫名其妙的错误

No such module 'Amplify' HomeController.swift

即使改变了Model班级并Amplify显得无关。如果删除blank,然后清理并重建,则一切恢复正常。这种行为的原因是什么?

供参考,这是我的podfile:

# Uncomment the next line to define a global platform for your project
# platform :ios, '9.0'

target 'alpha' do
  # Comment the next line if you don't want to use dynamic frameworks
  use_frameworks!

  # Pods for alpha
    pod 'amplify-tools'

    pod 'Amplify'
    pod 'AWSPluginsCore'
    pod 'AmplifyPlugins/AWSAPIPlugin'

    pod 'AWSMobileClient', '~> 2.13.0'      # Required dependency
    pod 'AWSUserPoolsSignIn', '~> 2.13.0'

    pod 'AWSAppSync', '~> 3.1.0'
    pod 'AWSMobileClient', '~> 2.13.0'
    pod 'AWSAuthUI', '~> 2.13.0'
    pod 'AWSUserPoolsSignIn', '~> 2.13.0'

end

______________________更新___________________

amplify push建议按照Julien S的建议,并确保将其中的所有文件amplify/generated/models都移至(https://aws-amplify.github.io/docs/ios/start?ref=amplify-iOS-btn的顶级目录中现在这个问题No such module 'Amplify' HomeController.swift解决了。但是,我再也找不到在更新模型之前保存的数据。作为参考,当用户创建帐户时,我将访问用户的令牌并将其与用户的电子邮件一起保存。然后,下次用户打开应用程序时,我再次获得令牌,并按令牌查询用户数据库。相关代码:

class CognitoPoolProvider : AWSCognitoUserPoolsAuthProviderAsync {

    func getLatestAuthToken(_ callback: @escaping (String?, Error?) -> Void) {

        AWSMobileClient.default().getTokens { (token, error) in
            if let error = error {
                callback(nil,error)
            }
            callback(token?.accessToken?.tokenString, error)
        }
    }
}

在MainController.swift中:

override func viewDidLoad() {
    super.viewDidLoad()

    // get user token
    let pool = CognitoPoolProvider();

    pool.getLatestAuthToken { (token, error) in

        if let error = error {

            print("error: \(error)")

        } else {
            self.getUserData(token: token!)
        }
    }
}

func getUserData(token:String){

    print("token >>>> \(token)")

   // this is successful. you got all the user stuff
   // when you change the user model, you can no longer query the user
   let _ = Amplify.API.query(from: User.self, byId: token) { (event) in
        switch event {
            case .completed(let result):
                switch result {
                    case .success(let note):
                        guard let note = note else {
                            print("API Query completed but missing user")
                            return
                        }
                        print("API Query successful, got user: \(note)")
                case .failure(let error):
                    print("Completed with error: \(error.errorDescription)")
                    }
            case .failed(let error):
                print("Failed with error \(error.errorDescription)")
            default:
                print("Unexpected event")
        }
    }

}
朱利安·S。

我假设您正在通过Amplify CLI配置所有内容?您是否正在使用适用于Amazon的新旧iOS SDK?我的工作流程通常是在调整schema.graphql文件以运行放大推送命令时将这些更改实际传播到后端,并确保使其生成API.swift文件。您的graphql操作是否正在通过自动生成的api.swift文件运行?您也可以运行放大代码生成来重新创建api.swift文件。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Jenkins工作流程中编辑Build Parameters?

来自分类Dev

使用Intellij中的Maven了解正确的工作流程

来自分类Dev

在工作流程中调用工作流程

来自分类Dev

将更新应用于历史记录中的git补丁时正确的工作流程是什么

来自分类Dev

JWT的正确工作流程是什么?

来自分类Dev

正确的工作流程React.js

来自分类Dev

并发版本的正确工作流程

来自分类Dev

使用Kentico API进行比赛-在工作流程中编辑评论

来自分类Dev

是否可以在Odoo9中编辑sale.order工作流程?

来自分类Dev

使用Sphinx for Python项目文档时正确的工作流程是什么?

来自分类Dev

WebStorm中的ReactJS工作流程

来自分类Dev

在TargetProcess中实施关系工作流程

来自分类Dev

AppleScript在Automator中循环工作流程

来自分类Dev

在JavaFX中构建某种工作流程

来自分类Dev

.netcore中的用户秘密工作流程?

来自分类Dev

SE在Emacs中的OAuth工作流程

来自分类Dev

Camel vs BPM中的工作流程

来自分类Dev

使用“轨道中的工作流程宝石”

来自分类Dev

在工作流程中托管StateMachine元素

来自分类Dev

在Powershell工作流程中解析XML

来自分类Dev

在Powershell工作流程中声明数组

来自分类Dev

11.04中的GPG工作流程

来自分类Dev

在Excel中设置更好的工作流程

来自分类Dev

Powershell工作流程中的动态路径

来自分类Dev

黄瓜中的多步骤工作流程

来自分类Dev

AutomatedWorkflowActionException:在Hybris中为自动化工作流程定义的类型不正确

来自分类Dev

如何通过API编辑工作流程步骤?

来自分类Dev

启动新的工作流程实例时,如何获取我的工作流程RunID?

来自分类Dev

在R中,在配方中包含step_pca时适合工作流程中的错误

Related 相关文章

热门标签

归档