Флаттер Усиливает ошибку настройки S3, amplifyconfiguration.json

#flutter #amazon-s3 #aws-amplify

Вопрос:

Я начинаю проект с хранилищем Amplify S3. Я следил за многими учебными пособиями и примерами проектов.

Я скачал этот пример проекта: https://github.com/aws-amplify/amplify-flutter/tree/main/example

Но я получаю следующую ошибку, когда caled Amplify.configue(amplifyconfig):

E/flutter ( 5798): [ОШИБКА:flutter/lib/ui/ui_dart_state.cc(209)] Необработанное исключение: Исключение AnalyticsException(сообщение: Не удается прочитать идентификатор приложения или регион из json конфигурации amplify., recoverySuggestion: Убедитесь, что конфигурация amplifyconfiguration.json-это допустимый объект json в ожидаемом формате. Пожалуйста, ознакомьтесь с документацией для ожидаемого формата amplifyconfiguration.json., лежащего в основе исключения: org.json.JSONException: Нет значения для точного анализа) E/flutter ( 5798): #0 AmplifyClass.configure (пакет:amplify_flutter/amplify.дротик:171:9) E/флаттер ( 5798): E/флаттер ( 5798): #1 _MyAppState._initAmplifyFlutter (пакет:sample_app/main.дротик:65:7) E/флаттер ( 5798): E/флаттер ( 5798):

Это часть кода:

  @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;
    });
  }
 

Кроме того, моя неопределенность в усилении.дарт, кажется, выглядит нормально;

 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"
            }
        }
    }
}''';
 

Я убежал:

   amplify add auth
   amplify add storage
   amplify push
 

Вот мои зависимости в 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
 

Все равно не везет. Спасибо

Ответ №1:

Вы никогда не добавляли аналитику в свой проект. Ты сделал

  amplify add auth
   amplify add storage
   amplify push
 

Но вы не добавили аналитику.

кроме того, если вы проверите свой файл amplifyconfiguation.dart, там есть «аутентификация» и «хранилище», но нет аналитики.

Просто прокомментируйте это и попробуйте:

 @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;
    });
  }
 

Комментарии:

1. Большое спасибо