【问题标题】:Finding User ID in AWS Mobile Hub for iOS在适用于 iOS 的 AWS Mobile Hub 中查找用户 ID
【发布时间】:2018-03-30 20:41:36
【问题描述】:

我正在将 AWS Mobile Hub 用于应用程序。我已经实现了一个可以正常工作的登录屏幕。我需要将客户端 ID 添加到 DynamoDB 上的数据库中。但是,我似乎无法在我的应用中实现这一点。

这是来自 AWS docs 的示例代码。打印结果有一个明显的错误,因为它认为我们正在保存到 NoSQL 表,但请忽略它。

@IBAction func readButton(_ sender: Any) {

let dynamoDbObjectMapper = AWSDynamoDBObjectMapper.default()

//Create data object using data models you downloaded from Mobile Hub
let newsItem: News = News();

dynamoDbObjectMapper.load(
    // Use AWSIdentityManager.default().identityId here to get the user identity id.
    newsItem.setUserId("us-east-1:01234567-89ab-123c-4de5-fab678cde901"),
    News.self,
    hashKey: userId,
    rangeKey: rangeKey,
    completionHandler: {
        (error: Error?) -> Void in

        if let error = error {
            print("Amazon DynamoDB Save Error: \(error)")
            return
        }
        print("An item was saved.")
    })

}

这是我在 ViewController 中实现的:

让 dynamoDbObjectMapper = AWSDynamoDBObjectMapper.default() 让用户:用户=用户();

    dynamoDbObjectMapper.load(

        let userId = AWSIdentityManager.default().identityId,
        User.setUserId(userId),
        Users.self,
        hashKey: userId,
        completionHandler: {
        (error: Error?) -> Void in

        if let error = error {
            print("Amazon DynamoDB Save Error: \(error)")
            return
        }
        print("An item was saved.")
    })
}

不确定如何找到用户 ID。请帮忙

【问题讨论】:

    标签: ios amazon-web-services aws-cognito aws-mobilehub


    【解决方案1】:

    在代码 sn-p 中,userId 是指从 AWSIdentityManager 获取的 IdentityId。 IdentityId 由 AWS Cognito 联合身份提供,用作用户连接到 AWS 服务的唯一标识符。

    @IBAction func readButton(_ sender: Any) {
    
    let dynamoDbObjectMapper = AWSDynamoDBObjectMapper.default()
    
    //Create data object using data models you downloaded from Mobile Hub
    let newsItem: News = News();
    
    dynamoDbObjectMapper.load(
        // Use AWSIdentityManager.default().identityId here to get the user identity id.
        let userId = AWSIdentityManager.default().identityId
        newsItem.setUserId(userId),
        News.self,
        hashKey: userId,
        rangeKey: rangeKey,
        completionHandler: {
            (error: Error?) -> Void in
    
            if let error = error {
                print("Amazon DynamoDB Save Error: \(error)")
                return
            }
            print("An item was saved.")
        })
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-13
      • 1970-01-01
      • 1970-01-01
      • 2018-08-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多