I'm starting a project with Amplify S3 storage. I have followed many tutorials and example projects.
I downloaded this sample project: https://github.com/aws-amplify/amplify-flutter/tree/main/example
But I get the following error, when caled Amplify.configue(amplifyconfig):
E/flutter ( 5798): [ERROR:flutter/lib/ui/ui_dart_state.cc(209)] Unhandled Exception: AnalyticsException(message: Unable to read appId or region from the amplify configuration json., recoverySuggestion: Make sure amplifyconfiguration.json is a valid json object in expected format. Please take a look at the documentation for expected format of amplifyconfiguration.json., underlyingException: org.json.JSONException: No value for pinpointAnalytics) E/flutter ( 5798): #0 AmplifyClass.configure (package:amplify_flutter/amplify.dart:171:9) E/flutter ( 5798): E/flutter ( 5798): #1 _MyAppState._initAmplifyFlutter (package:sample_app/main.dart:65:7) E/flutter ( 5798): E/flutter ( 5798):
This is some of the code:
@override
initState() {
super.initState();
_initAmplifyFlutter();
}
void _initAmplifyFlutter() async {
AmplifyAuthCognito auth = AmplifyAuthCognito();
AmplifyStorageS3 storage = AmplifyStorageS3();
AmplifyAnalyticsPinpoint analytics = AmplifyAnalyticsPinpoint();
Amplify.addPlugins([auth, storage, analytics]);
// Initialize AmplifyFlutter
try {
await Amplify.configure(amplifyconfig);
} on AmplifyAlreadyConfiguredException {
print(
"Amplify was already configured. Looks like app restarted on android.");
}
setState(() {
_isAmplifyConfigured = true;
});
}
Also, my amplifyconfiguation.dart seems to look fine;
const amplifyconfig = ''' {
"UserAgent": "aws-amplify-cli/2.0",
"Version": "1.0",
"auth": {
"plugins": {
"awsCognitoAuthPlugin": {
"UserAgent": "aws-amplify-cli/0.1.0",
"Version": "0.1.0",
"IdentityManager": {
"Default": {}
},
"CredentialsProvider": {
"CognitoIdentity": {
"Default": {
"PoolId": "us-east-1:b9741a22-5ce7-44e6-807d-43ac31244d3b",
"Region": "us-east-1"
}
}
},
"CognitoUserPool": {
"Default": {
"PoolId": "us-east-1_xTO13zNaS",
"AppClientId": "3im526imsnhcl9rugc3t8c70tn",
"Region": "us-east-1"
}
},
"Auth": {
"Default": {
"authenticationFlowType": "USER_SRP_AUTH",
"loginMechanisms": [
"PREFERRED_USERNAME"
],
"signupAttributes": [
"EMAIL"
],
"passwordProtectionSettings": {
"passwordPolicyMinLength": 8,
"passwordPolicyCharacters": []
},
"mfaConfiguration": "OFF",
"mfaTypes": [
"SMS"
],
"verificationMechanisms": [
"EMAIL"
]
}
},
"S3TransferUtility": {
"Default": {
"Bucket": "demobucket225218-dev",
"Region": "us-east-1"
}
}
}
}
},
"storage": {
"plugins": {
"awsS3StoragePlugin": {
"bucket": "demobucket225218-dev",
"region": "us-east-1",
"defaultAccessLevel": "guest"
}
}
}
}''';
I have run:
amplify add auth
amplify add storage
amplify push
Here are my dependancies in pubspec.yaml
file_picker: ^4.0.0
amplify_flutter: 0.2.7
amplify_analytics_pinpoint: 0.2.7
amplify_auth_cognito: 0.2.7
amplify_storage_s3: 0.2.7
Still no luck. Thanks
CodePudding user response:
You never added analytics to your project. You did
amplify add auth
amplify add storage
amplify push
But you didn't add analytics.
also, if you check your amplifyconfiguation.dart, there is "auth" and "storage" - but no analytics.
Just comment it out and try:
@override
initState() {
super.initState();
_initAmplifyFlutter();
}
void _initAmplifyFlutter() async {
AmplifyAuthCognito auth = AmplifyAuthCognito();
AmplifyStorageS3 storage = AmplifyStorageS3();
//AmplifyAnalyticsPinpoint analytics = AmplifyAnalyticsPinpoint();
Amplify.addPlugins([auth, storage/*, analytics*/]);
// Initialize AmplifyFlutter
try {
await Amplify.configure(amplifyconfig);
} on AmplifyAlreadyConfiguredException {
print(
"Amplify was already configured. Looks like app restarted on android.");
}
setState(() {
_isAmplifyConfigured = true;
});
}