问题描述
我正在尝试使用 Firebase 在 Flutter 中实现带有电子邮件和密码的身份验证系统。
我想使用 Flutter_riverpod 来管理应用状态。
import 'package:Flutter_riverpod/Flutter_riverpod.dart';
final emailProvider = StateProvider<String>((ref) {
return null;
});
final passwordProvider = StateProvider<String>((ref) {
return null;
});
class Login extends ConsumerWidget {
void updateEmail(BuildContext context,String email) {
context.read(emailProvider).state = email;
}
void updatePassword(BuildContext context,String pass) {
context.read(passwordProvider).state = pass;
}
bool is_email_valid = false;
bool is_pass_valid = false;
final auth = FirebaseAuth.instance;
bool circular = false;
final GlobalKey<FormState> _formkey = GlobalKey<FormState>();
@override
Widget build(BuildContext context,ScopedReader watch) {
final email = watch(emailProvider).state;
final pass = watch(passwordProvider).state;
final _auth = watch(authServicesProvider);
return Scaffold(
...
然后在两个 textFormFields 上更新电子邮件和密码的值:
child: TextFormField(
keyboardType: TextInputType.emailAddress,validator: (value){
if(value.isEmpty){
return 'Email no válido';
}
if (!EmailValidator.validate(email)){
return "Formato de email no válido";
}
if (EmailValidator.validate(email)){
is_email_valid = true;
}
return null;
},onChanged: (value){
updateEmail(context,value);
},decoration: Inputdecoration(
errorStyle: TextStyle(
color: ColoresApp.grisMovMap,fontSize: 16,),border: InputBorder.none,hintText: "Email",prefixIcon: Icon(Icons.email),)),child: TextFormField(
validator: ( value){
if (value.isEmpty){
return 'Contraseña vacia';
}
if(value.length < 6){
return "Contraseña muy corta,6 caracteres mínimo";
}
return null;
},obscureText: true,onChanged: (value){
updatePassword(context,value);
},decoration: Inputdecoration(
border: InputBorder.none,hintText: "Contraseña",prefixIcon: Icon(Icons.vpn_key),errorStyle: TextStyle(
color: ColoresApp.grisMovMap,
但我在线路上遇到了问题:
void updateEmail(BuildContext context,String pass) {
context.read(passwordProvider).state = pass;
}
我在 android studio 中收到此错误消息,我不明白:
我在使用 Riverpod 时做错了什么?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)