2016-05-11 3 views
0

Ich versuche, diese AWS Cognito-Beispielanwendung von https://github.com/awslabs/aws-sdk-ios-samples/tree/master/CognitoSync-Sample/Swift auszuführen. Ich kann neuen Datensatz hinzufügen, aber sobald ich versuche, zu synchronisieren/aktualisieren, bekomme ich diesen Fehler unten. Ich versuche es nicht mit irgendeinem Anbieter. Nur einfache Synchronisierung von Daten.Problem mit AWS cognito Beispielanwendung

Und hier ist die Schritte i tat -

1.Downloaded die Beispielanwendung von GitHub.

2.Installed AWSCognito mit pod als

3.Und Erstellt eine Identität Pool in Amazon cognito Konsole gegeben

4.and die Konstanten in Constants.swift aktualisiert -

statisch let COGNITO_REGIONTYPE = AWSRegionType.USEast1 statisch let COGNITO_IDENTITY_POOL_ID = "us-east-1_XXXXXXXXX"

ist hier der Fehler von meiner Konsole -

2016-05-11 15:43:49.643 CognitoSyncDemo[18352:6625488] AWSiOSSDKv2 [Debug] AWSCognitoSQLiteManager.m line:179 | __51-[AWSCognitoSQLiteManager initializeDatasetTables:]_block_invoke | sqlString = 'INSERT INTO CognitoMetadata(Dataset,ModifiedBy,IdentityId) VALUES (?,?,?)' 
2016-05-11 15:43:49.643 CognitoSyncDemo[18352:6625488] AWSiOSSDKv2 [Debug] AWSCognitoSQLiteManager.m line:282 | __53-[AWSCognitoSQLiteManager loadDatasetMetadata:error:]_block_invoke | query = 'SELECT LastSyncCount, LastModified, ModifiedBy, CreationDate, DataStorage, RecordCount FROM CognitoMetadata WHERE IdentityId = ? and Dataset = ?' 
2016-05-11 15:43:49.647 CognitoSyncDemo[18352:6625968] AWSiOSSDKv2 [Verbose] AWSURLRequestSerialization.m line:103 | -[AWSJSONRequestSerializer serializeRequest:headers:parameters:] | Request body: [{"IdentityPoolId":"us-east-1_1kBTIfzWu"}] 
2016-05-11 15:43:50.942 CognitoSyncDemo[18352:6626097] AWSiOSSDKv2 [Debug] AWSURLResponseSerialization.m line:74 | -[AWSJSONResponseSerializer responseObjectForResponse:originalRequest:currentRequest:data:error:] | Response header: [{ 
Connection = close; 
"Content-Length" = 218; 
"Content-Type" = "application/x-amz-json-1.1"; 
Date = "Wed, 11 May 2016 10:13:50 GMT"; 
"x-amzn-ErrorMessage" = "1 validation error detected: Value 'us-east-1_1kBTIfzWu' at 'identityPoolId' failed to satisfy constraint: Member must satisfy regular expression pattern: [\w-]+:[0-9a-f-]+"; 
"x-amzn-ErrorType" = "ValidationException:"; 
"x-amzn-RequestId" = "0ec70838-1761-11e6-91c2-e77b976ab658"; 
}] 
2016-05-11 15:43:50.942 CognitoSyncDemo[18352:6626097] AWSiOSSDKv2 [Verbose] AWSURLResponseSerialization.m line:79 | -[AWSJSONResponseSerializer responseObjectForResponse:originalRequest:currentRequest:data:error:] | Response body: [{"__type":"ValidationException","message":"1 validation error detected: Value 'us-east-1_1kBTIfzWu' at 'identityPoolId' failed to satisfy constraint: Member must satisfy regular expression pattern: [\w-]+:[0-9a-f-]+"}] 
2016-05-11 15:43:50.943 CognitoSyncDemo[18352:6626097] AWSiOSSDKv2 [Error] AWSIdentityProvider.m line:185 | __51-[AWSAbstractCognitoIdentityProvider getIdentityId]_block_invoke169 | GetId failed. Error is [Error Domain=com.amazonaws.AWSCognitoIdentityErrorDomain Code=0 "(null)" UserInfo={__type=ValidationException, message=1 validation error detected: Value 'us-east-1_1kBTIfzWu' at 'identityPoolId' failed to satisfy constraint: Member must satisfy regular expression pattern: [\w-]+:[0-9a-f-]+}] 
2016-05-11 15:43:50.943 CognitoSyncDemo[18352:6625968] AWSiOSSDKv2 [Verbose] AWSURLRequestSerialization.m line:103 | -[AWSJSONRequestSerializer serializeRequest:headers:parameters:] | Request body: [{"IdentityPoolId":"us-east-1_1kBTIfzWu"}] 
2016-05-11 15:43:52.168 CognitoSyncDemo[18352:6626097] AWSiOSSDKv2 [Debug] AWSURLResponseSerialization.m line:74 | -[AWSJSONResponseSerializer responseObjectForResponse:originalRequest:currentRequest:data:error:] | Response header: [{ 
Connection = close; 
"Content-Length" = 218; 
"Content-Type" = "application/x-amz-json-1.1"; 
Date = "Wed, 11 May 2016 10:13:51 GMT"; 
"x-amzn-ErrorMessage" = "1 validation error detected: Value 'us-east-1_1kBTIfzWu' at 'identityPoolId' failed to satisfy constraint: Member must satisfy regular expression pattern: [\w-]+:[0-9a-f-]+"; 
"x-amzn-ErrorType" = "ValidationException:"; 
"x-amzn-RequestId" = "0f7792fc-1761-11e6-9ad4-59d8bf47e69e"; 
}] 
2016-05-11 15:43:52.168 CognitoSyncDemo[18352:6626097] AWSiOSSDKv2 [Verbose] AWSURLResponseSerialization.m line:79 | -[AWSJSONResponseSerializer responseObjectForResponse:originalRequest:currentRequest:data:error:] | Response body: [{"__type":"ValidationException","message":"1 validation error detected: Value 'us-east-1_1kBTIfzWu' at 'identityPoolId' failed to satisfy constraint: Member must satisfy regular expression pattern: [\w-]+:[0-9a-f-]+"}] 
2016-05-11 15:43:52.168 CognitoSyncDemo[18352:6626097] AWSiOSSDKv2 [Error] AWSIdentityProvider.m line:185 | __51-[AWSAbstractCognitoIdentityProvider getIdentityId]_block_invoke169 | GetId failed. Error is [Error Domain=com.amazonaws.AWSCognitoIdentityErrorDomain Code=0 "(null)" UserInfo={__type=ValidationException, message=1 validation error detected: Value 'us-east-1_1kBTIfzWu' at 'identityPoolId' failed to satisfy constraint: Member must satisfy regular expression pattern: [\w-]+:[0-9a-f-]+}] 
2016-05-11 15:43:52.169 CognitoSyncDemo[18352:6626097] AWSiOSSDKv2 [Error] AWSCognitoService.m line:176 | __36-[AWSCognito refreshDatasetMetadata]_block_invoke147 | Unable to list datasets: Error Domain=com.amazon.cognito.AWSCognitoErrorDomain Code=-4000 "(null)" 

Was fehlt mir? Ich bin sehr neu in AWS-Diensten, jede Anleitung würde sehr geschätzt werden.

Danke, Richa

Antwort

3

ich id Benutzer Pool-ID statt Identität Pool verwenden. Es ist jetzt gelöst.

+0

hatte gerade das gleiche Problem. Nur zur Erinnerung: Die "Pool-ID" in AWS-Benutzerpools ist unglaublich irreführend. AWS möchte, dass Sie in der Beispiel-App die * Federated Identities * aufrufen, den neuen Identitätspool starten und die ID-Pool-ID abrufen. fml –

0

Ja, dies verwendet fast immer eine Benutzerpool-ID anstelle eines Identitätspools.

Beachten Sie, dass wenn Sie die richtige Identity-Pool-ID beim Initialisieren von AWSCognitoCredentialsProvider() eingeben, es auch mit einer falschen ID in Ihrem AIS-Wörterbuchdeskriptor info.plist im Simulator funktioniert. Aber auf dem Gerät wird es die info.plist Pool-ID verwenden und scheitern, wenn es falsch ist. Das hat mich gebissen, also stelle sicher, dass deine Pool-ID an beiden Orten korrekt ist.