在 AWS Mobile Hub 中查找 iOS 的用户 ID

Finding User ID in AWS Mobile Hub for iOS

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

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

@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() 让用户:Users = Users();

    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。请帮助

在代码片段中,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.")
    })
}