Home > other >  Flutter Amplify S3 setup error, amplifyconfiguration.json
Flutter Amplify S3 setup error, amplifyconfiguration.json

Time:11-12

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;
    });
  }
  • Related