我正在使用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。请帮忙
答案 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.")
})
}