2016-08-25 69 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) 

但是當我設置ID與awsMobileClient.getIdentityManager().getCachedUserID() 一切都很好。我的第一個問題是,我如何使用我的ID保存記錄?因爲當我清除應用程序中的數據並使用同一用戶登錄時,Amazon SDK將創建具有相同數據但ID不同的新記錄。 我的第二個問題。我使用掃描從表中獲取日期,但我不想獲取所有記錄,只有50。我在亞馬遜doc方法限制中看到並嘗試它,但它不起作用。我的代碼

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

此代碼返回所有記錄。有人可以解釋我這兩個問題。提前致謝。

回答

0

user-id字段的配置方式是隻有Cognito Identity Id可用於在表中存儲記錄。這樣,每個條目都映射到用戶,只有相應的用戶才能修改或讀取它。在此配置中使用自定義ID是不可能的,因爲它不會有任何映射到其數據的用戶。

+0

感謝您的回覆。但是,如果有人輸入兩次,我該如何檢查當前用戶是否存在? –