0

我正在将 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。请帮忙

4

1 回答 1

0

在代码片段中,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.")
    })
}
于 2017-10-19T18:47:02.657 回答