這是我的代碼 .. 它運行成功,沒有錯誤,但是一旦我單擊“注冊”按鈕,它就會拋出錯誤。
import 'package:flutter/material.dart';
import 'package:firebase_auth/firebase_auth.dart';
import 'package:firebase_core/firebase_core.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp();
runApp(MaterialApp(
home: Homepage(),
routes: {
'/home': (context) {
return Homepage();
},
'/first': (context) {
return First_Page();
},
},
));
}
class Homepage extends StatefulWidget {
const Homepage({Key? key}) : super(key: key);
@override
_HomepageState createState() => _HomepageState();
}
class _HomepageState extends State<Homepage> {
final Future<FirebaseApp> _initialization = Firebase.initializeApp();
final _auth = FirebaseAuth.instance;
final _user = TextEditingController();
final _pass = TextEditingController();
String email = '';
String password = '';
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
backgroundColor: Colors.blue,
title: Text(
'Sign-Up',
),
centerTitle: true,
),
body: SingleChildScrollView(
child: Column(
children: [
Padding(
padding: EdgeInsets.only(top: 250),
),
Container(
child: TextFormField(
controller: _user,
decoration: InputDecoration(
hintText: "Email-id",
border: OutlineInputBorder(
borderRadius: BorderRadius.circular(10),
)),
),
),
SizedBox(
height: 10,
),
Container(
child: TextFormField(
controller: _pass,
decoration: InputDecoration(
hintText: "Password",
border: OutlineInputBorder(
borderRadius: BorderRadius.circular(10),
)),
),
),
FlatButton(
color: Colors.blue,
child: Text('Sign-up'),
onPressed: () async {
await Firebase.initializeApp();
email = _user.toString();
password = _pass.toString();
final newuser = await _auth.createUserWithEmailAndPassword(
email: email.trim(),
password: password.trim(),
);
if (newuser != null) {
Navigator.pushNamed(context, '/First_Page');
} else
print('Error');
},
),
],
),
),
);
}
}
這些是我得到的所有錯誤
E/flutter (10268): [ERROR:flutter/lib/ui/ui_dart_state.cc(209)] Unhandled Exception:
[firebase_auth/invalid-email] The email address is badly formatted.
E/flutter (10268): #0 MethodChannelFirebaseAuth.createUserWithEmailAndPassword
(package:firebase_auth_platform_interface/src/method_channel
/method_channel_firebase_auth.dart:272:7)
E/flutter (10268): <asynchronous suspension>
E/flutter (10268): #1 FirebaseAuth.createUserWithEmailAndPassword
(package:firebase_auth/src/firebase_auth.dart:238:7)
E/flutter (10268): <asynchronous suspension>
E/flutter (10268): #2 _HomepageState.build.<anonymous closure>
(package:firebase/main.dart:79:31)
E/flutter (10268): <asynchronous suspension>
E/flutter (10268):
在 Firebase 身份驗證中,我已經啟用了電子郵件登錄方法,現在我沒有找到我弄錯的地方。請告訴我。提前謝謝..
uj5u.com熱心網友回復:
對于email您使用的地址:
email=_user.toString();
隨著_user:
final _user=TextEditingController()
因此,您正在呼叫toStringa TextEditingController,它為您提供了該控制器的除錯表示。如果您想要該控制器的值,您將需要使用:
email=_user.value;
要自己發現此類問題,我建議您學習設定斷點并使用除錯器。如果您在_auth.createUserWithEmailAndPassword(這是例外的來源)上設定斷點并在除錯器中運行,您可以很容易地看到它email沒有您期望的值。從那里開始,應該回溯到值的來源,并查看檔案TextEditingController以查看正確的呼叫。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/367300.html
