2016-08-25 3 views
0

私はAmazon DynamoDBにいくつかの問題を抱えています。私はテーブルに私のカスタムIDを使用してデータを保存したい場合は、このdynamoDBにレコードを設定してください

Failed saving item : User: arn:aws:sts::789096419101:assumed-role/zippz_unauth_MOBILEHUB_1029720639/CognitoIdentityCredentials is not authorized to perform: dynamodb:UpdateItem on resource: arn:aws:dynamodb:us-east-1:789096419101:table/zippz-mobilehub-1029720639-user (Service: AmazonDynamoDBv2; Status Code: 400; Error Code: AccessDeniedException; Request ID: O04JC7AH4CNREL2GFA6FQ20HJ3VV4KQNSO5AEMVJF66Q9ASUAAJG) 

のように私にエラーを与えるが、私はawsMobileClient.getIdentityManager().getCachedUserID()でIDを設定すると すべてが良いです。そして私の最初の質問、どうすれば自分のIDでレコードを保存できますか?アプリ内のデータをクリアして同じユーザーでログインすると、Amazon SDKは同一のデータでIDが異なる新しいレコードを作成するためです。 私の2番目の質問です。私はスキャンを使ってテーブルから日付を取得していますが、すべてのレコードをフェッチする必要はありません.50です。私はamazonのdocメソッドの制限で試してみましたが、うまくいきませんでした。私のコード

final DynamoDBScanExpression scanExpression = new DynamoDBScanExpression() 
        .withLimit(50); 
PaginatedScanList<ProductDO> result = dynamoDBMapper.scan(ProductDO.class, scanExpression); 

このコードはすべてのレコードを返します。誰かが私にこの2つの問題を説明できますか?前もって感謝します。

答えて

0

user-idフィールドは、Cognito Identity Idのみを使用してレコードをテーブルに格納できるように設定されています。このようにして、すべてのエントリがユーザにマッピングされ、対応するユーザだけがそれを修正したり読むことができます。この設定でカスタムIDを使用することはできません。なぜなら、データを持つユーザーへのマッピングがないからです。

+0

返信いただきありがとうございます。しかし、誰かが二度入力すると、現在のユーザーが存在することをどのように確認できますか? –

関連する問題