【发布时间】:2021-11-02 18:17:54
【问题描述】:
我一直在尝试配置放大,但它不断带来身份验证异常。
这是我的主页
class AppWidget extends StatefulWidget {
const AppWidget({Key? key}) : super(key: key);
@override
State<AppWidget> createState() => _AppWidgetState();
}
class _AppWidgetState extends State<AppWidget> {
@override
void initState() {
super.initState();
_configureAmplify();
}
@override
Widget build(BuildContext context) {
final appRouter = AppRouter();
return MultiRepositoryProvider(
providers: [
RepositoryProvider(
create: (context) => AuthRepository(),
),
],
child: MultiBlocProvider(
providers: [
BlocProvider(
create: (context) => AuthBloc(context.read<AuthRepository>())
..add(const AuthEvent.authCheckRequested())),
],
child: MaterialApp.router(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
routerDelegate: appRouter.delegate(),
routeInformationParser: appRouter.defaultRouteParser(),
),
),
);
}
Future<void> _configureAmplify() async {
Amplify.addPlugins([
AmplifyAuthCognito(),
AmplifyDataStore(modelProvider: ModelProvider.instance),
AmplifyAPI(),
AmplifyStorageS3(),
AmplifyAnalyticsPinpoint(),
]);
try {
await Amplify.configure(amplifyconfig);
} catch (e) {
//Todo!!: change from log later
print(
"Tried to reconfigure Amplify; this can occur when your app restarts on Android.");
}
}
}
我的身份验证块
class AuthBloc extends Bloc<AuthEvent, AuthState> {
final AuthRepository _authrepository;
AuthBloc(this._authrepository) : super(const AuthState.initial()) {
// on<AuthEvent>((_onEvent);
on<AuthEvent>((event, emit) {
event.map(
authCheckRequested: (e) async {
final userOption = await _authrepository.user;
emit(userOption.fold(
() => const AuthState.unauthenticated(),
(_) => const AuthState.authenticated(),
));
},
signedOut: (e) async {
await _authrepository.logOut();
emit(const AuthState.unauthenticated());
},
);
});
}
}
错误:
E/flutter ( 2805): [ERROR:flutter/lib/ui/ui_dart_state.cc(209)] Unhandled Exception: AmplifyException(message: Auth plugin has not been added to Amplify, recoverySuggestion: Add Auth plugin to Amplify and call configure before calling Auth related APIs, underlyingException: null)
E/flutter ( 2805): #0 AuthCategory.getCurrentUser
package:amplify_flutter/categories/amplify_auth_category.dart:196
E/flutter ( 2805): #1 AuthRepository.user
package:aws_test/…/infrastructure/auth_repository.dart:10
E/flutter ( 2805): #2 new AuthBloc.<anonymous closure>.<anonymous closure>
package:aws_test/…/auth_bloc/auth_bloc.dart:16
E/flutter ( 2805): #3 new AuthBloc.<anonymous closure>.<anonymous closure>
package:aws_test/…/auth_bloc/auth_bloc.dart:15
E/flutter ( 2805): #4 _$_AuthCheckRequested.map
package:aws_test/…/auth_bloc/auth_bloc.freezed.dart:163
E/flutter ( 2805): #5 new AuthBloc.<anonymous closure>
package:aws_test/…/auth_bloc/auth_bloc.dart:14
n.b: 忽略最后几句 他发誓他只是看到他的寿司动了。 他们很高兴看到他们的第一个树懒。 每当他在海滩上看到红旗警告时,他都会抓起冲浪板。 他们扔卷心菜,把你的大脑变成情感包袱。 三块球形岩石聚集在一个立方体的房间里。 一个安静的房子是不错的,直到你被命令在里面呆几个月。
【问题讨论】:
标签: amazon-web-services flutter dart aws-amplify