首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >颤振:使用amplify_flutter插件时amplify_auth_cognito崩溃

颤振:使用amplify_flutter插件时amplify_auth_cognito崩溃
EN

Stack Overflow用户
提问于 2022-03-28 16:30:05
回答 1查看 534关注 0票数 0

摘要:我有两个问题:当我尝试使用auth插件时,加载的应用程序错误和在模拟器上运行的整个应用程序崩溃。

我从终端连接到使用amplify init进行放大。我遵循下面的示例:https://pub.dev/packages/amplify_auth_cognito/example

代码语言:javascript
复制
version: 1.0.0+1
amplify_auth_cognito: 0.4.2
amplify_flutter: 0.4.2

下面的例子是来自一个超级简单小部件的代码块,它只呈现一些写着“Hi”的文本

第1期:

如果我在没有AmplifyAuthCognito插件的情况下启动这个应用程序,它就能工作:

代码语言:javascript
复制
// Example 1 without auth plugin
  void initState() {
    super.initState();
    _configureAmplify();
  }

  Future<void> _configureAmplify() async {
    try {
      await Amplify.configure(amplifyconfig);
      print('Configure success');
    } on AmplifyAlreadyConfiguredException {
      print('Amplify was already configured.');
    }
  }

Configure Success打印在调试终端中。

接下来,我添加了Auth插件并重新构建了这个应用程序:

代码语言:javascript
复制
// Example 2 With Auth plugin
  void initState() {
    super.initState();
    _configureAmplify();
  }

  Future<void> _configureAmplify() async {
    try {
      AmplifyAuthCognito authPlugin = AmplifyAuthCognito();
      await Amplify.addPlugins([authPlugin]);
      await Amplify.configure(amplifyconfig);
      print('Configure success');
    } on AmplifyAlreadyConfiguredException {
      print('Amplify was already configured.');
    }
  }

生成在调试控制台中抛出带有此错误的异常。

AmplifyException (消息:如果您依赖于放大插件而不使用应用程序,请检查您的pubspec.yaml。底层错误信息:无法解码配置,recoverySuggestion:从您的应用程序中没有使用的pubspec.yaml中删除放大插件,underlyingException: null)

如果我用VSCode中的“重新启动”按钮重新启动应用程序,错误就会消失。我在调试控制台中获得Configure success。我错过了什么使它在第一次构建时崩溃,而不是重新启动?

第2期:

为此,我在示例2中有相同的代码,我已经重新启动了应用程序,以便有一个干净的调试控制台。我做了一个按钮来检查当前用户。以下是单击处理程序的按钮:

代码语言:javascript
复制
  void checkSession() async {
    try {
      if (Amplify.isConfigured) {
        print('checkSession');
        final response = await Amplify.Auth.getCurrentUser();
        print('Amplify.Auth.fetchAuthSession $response');
      }
    } on Exception catch (e) {
      print('Amplify.Auth.fetchAuthSession Error $e');
    }
  }

当整个应用程序被调用时,就会在模拟器中崩溃,导致以下错误:

快速:18:致命错误:身份验证类别未配置。在类别上使用任何方法之前调用Amplify.configure()。与设备失去连接.

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-30 16:26:26

我终于想出来了。我是连接到一个现有的放大器设置。这意味着,我必须跳过大部分的本地放大器cli设置。

我回到了这个话题:https://docs.amplify.aws/lib/auth/getting-started/q/platform/flutter/#prerequisites

我确信我会在AWS上做点什么,但还是做了。

代码语言:javascript
复制
amplify add auth

? Do you want to use the default authentication and security configuration?
    `Default configuration`
? How do you want users to be able to sign in?
    `Username`
? Do you want to configure advanced settings?
    `No, I am done.`

amplify push

我不确定我是否在AWS上弄坏了任何东西,但是插件的动作现在起作用了。

巨大的失败与放大和颤振的错误消息在这里。这两条错误消息都不太可能导致正确的解决方案。幸运的是,我采用了尝试过的、真实的方法来处理一切,然后重新开始。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71650633

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档