在AWS Mobile Hub for iOS中查找用户标识

时间:2017-10-18 21:05:54

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

我正在使用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()         let user: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。请帮忙

1 个答案:

答案 0 :(得分: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.")
    })
}