摘要:我有两个问题:当我尝试使用auth插件时,加载的应用程序错误和在模拟器上运行的整个应用程序崩溃。
我从终端连接到使用amplify init进行放大。我遵循下面的示例:https://pub.dev/packages/amplify_auth_cognito/example
version: 1.0.0+1
amplify_auth_cognito: 0.4.2
amplify_flutter: 0.4.2下面的例子是来自一个超级简单小部件的代码块,它只呈现一些写着“Hi”的文本
第1期:
如果我在没有AmplifyAuthCognito插件的情况下启动这个应用程序,它就能工作:
// 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插件并重新构建了这个应用程序:
// 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中有相同的代码,我已经重新启动了应用程序,以便有一个干净的调试控制台。我做了一个按钮来检查当前用户。以下是单击处理程序的按钮:
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()。与设备失去连接.
发布于 2022-03-30 16:26:26
我终于想出来了。我是连接到一个现有的放大器设置。这意味着,我必须跳过大部分的本地放大器cli设置。
我回到了这个话题:https://docs.amplify.aws/lib/auth/getting-started/q/platform/flutter/#prerequisites
我确信我会在AWS上做点什么,但还是做了。
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上弄坏了任何东西,但是插件的动作现在起作用了。
巨大的失败与放大和颤振的错误消息在这里。这两条错误消息都不太可能导致正确的解决方案。幸运的是,我采用了尝试过的、真实的方法来处理一切,然后重新开始。
https://stackoverflow.com/questions/71650633
复制相似问题