Flutter Amplify S3 设置错误,amplifyconfiguration.json

Flutter Amplify S3 setup error, amplifyconfiguration.json

我正在开始一个使用 Amplify S3 存储的项目。我遵循了许多教程和示例项目。

我下载了这个示例项目: https://github.com/aws-amplify/amplify-flutter/tree/main/example

但是在调用 Amplify.configue(amplifyconfig) 时出现以下错误:

E/flutter ( 5798): [错误:flutter/lib/ui/ui_dart_state.cc(209)] 未处理的异常:AnalyticsException(消息:无法从放大配置中读取 appId 或区域 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: pinpointAnalytics 没有价值) E/flutter ( 5798): #0 AmplifyClass.configure (包:amplify_flutter/amplify.dart:171:9) E/flutter ( 5798): E/flutter ( 5798): #1 _MyAppState._initAmplifyFlutter (包:sample_app/main.dart:65:7) E/flutter ( 5798): E/flutter ( 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;
    });
  }

此外,我的 amplifyconfiguation.dart 看起来不错;

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

仍然没有运气。谢谢

您从未将分析添加到您的项目中。你做到了

 amplify add auth
   amplify add storage
   amplify push

但是你没有添加分析。

此外,如果您检查 amplifyconfiguation.dart,则有“auth”和“storage”——但没有分析。

注释掉试试:

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