我希望用戶在注冊后回傳到登錄頁面。
我的代碼可以作業,用戶得到了注冊,但應用程式沒有導航到登錄頁面。
注冊頁代碼:
。import 'package:flutter/material.dart';
import 'package:iddmib_rev/screens/haber_screen.dart';
import 'package:iddmib_rev/screens/login_screen.dart';
import 'package:iddmib_rev/services/auth.dart';
class RegisterScreen extends StatefulWidget {
@override
_RegisterScreenState createState() => _RegisterScreenState();
}
class _RegisterScreenState extends State<RegisterScreen>/span> {
final TextEditingController _nameController = TextEditingController()。
final TextEditingController _emailController = TextEditingController();
final TextEditingController _passwordController = TextEditingController();
最后 TextEditingController _passwordAgainController =
TextEditingController();
AuthService _authService = AuthService()。
@override
Widget build(BuildContext context) {
回傳 Scaffold(
body: SingleChildScrollView(
孩子。容器(
裝飾。BoxDecoration(
color: Colors.gray[100],
),
高度。MediaQuery.of(context).size.height。
兒童。列(
兒童。<Widget> [
影像(
高度。MediaQuery.of(context).size.height / 3.5,
影像。AssetImage('assets/images/logo.png')。
),
填充(
padding: EdgeInsets.symmetric(水平: 60.0, 垂直: 10.0),
孩子。TextField(
控制器。_nameController,
裝飾。InputDecoration(
contentPadding: EdgeInsets.symmetric(垂直:25.0)。
fillColor: Colors.white,
filled: true,
hintText: '?sim',
prefixIcon: Icon(
Icons.person_outlined,
size: 30.0,
),
),
),
),
padding(
padding: EdgeInsets.symmetric(水平: 60.0, 垂直: 10.0),
孩子。TextField(
控制器。_emailController,
裝飾。InputDecoration(
contentPadding: EdgeInsets.symmetric(垂直:25.0)。
fillColor: Colors.white,
filled: true,
hintText: 'E-posta'。
prefixIcon: Icon(
Icons.email_outlined,
size: 30.0,
),
),
),
),
padding(
padding: EdgeInsets.symmetric(水平: 60.0, 垂直: 10.0),
孩子。TextField(
控制器。_passwordController,
obscureText: true,
裝飾。InputDecoration(
contentPadding: EdgeInsets.symmetric(垂直:25.0)。
fillColor: Colors.white,
filled: true,
hintText: '?ifre',
prefixIcon: Icon(
Icons.password_outlined,
size: 30.0,
),
),
),
),
padding(
padding: EdgeInsets.symmetric(水平: 60.0, 垂直: 10.0),
孩子。TextField(
控制器。_passwordAgainController,
obscureText: true,
裝飾。InputDecoration(
contentPadding: EdgeInsets.symmetric(垂直:25.0)。
fillColor: Colors.white,
filled: true,
hintText: '?ifre Tekrar',
prefixIcon: Icon(
Icons.password_outlined,
size: 30.0,
),
),
),
),
SizedBox(高度: 10.0)。
InkWell(
onTap: () {
_authService
.createPerson(_nameController.text, _emailController.text,
_passwordController.text)
.then((value) {
return Navigator.push(context,
MaterialPageRoute(builder: (context) => LoginScreen())。
});
},
孩子。容器(
margin: EdgeInsets.symmetric(horizontal: 60.0),
對齊。Alignment.center,
高度: 60.0,
裝飾。BoxDecoration(
color: Theme.of(context).primaryColor,
borderRadius: borderRadius.circular(5.0),
),
孩子。文本(
'Kay?t Ol',
風格。TextStyle(
color: Colors.white,
fontSize: 25.0,
),
),
),
),
SizedBox(高度:10.0)。
],
),
)),
);
}
}
<iframe name="sif1" sandbox="allow-forms allow-modals allow-scripts" class="snippet-box-edit snippet-box-result" frameborder="0"></iframe>
Auth.dart檔案代碼
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:firebase_auth/firebase_auth.dart';
class AuthService {
final FirebaseAuth _auth = FirebaseAuth.instance;
final FirebaseFirestore _firestore = FirebaseFirestore.instance;
//giri? yap fonksiyonu
Future<User?> signIn(String email, String password) async {
var user = await _auth.signInWithEmailAndPassword(
email: email, password: password)。
回傳user.user。
}
//在此程序中,我們可以看到我們的用戶是如何使用的。
signOut() async {
return await _auth.signOut();
}
//可以說這是一個很好的方法。
Future<User?> createPerson(String name, String email, String password) async {
var user = await _auth.createUserWithEmailAndPassword(
email: email, password: password)。
await _firestore
.collection("Person")
.doc(user.user!.uid)
.set({'userName': name, 'email': email})。
回傳user.user。
}
}
<iframe name="sif2" sandbox="allow-forms allow-modals allow-scripts" class="snippet-box-edit snippet-box-result" frameborder="0"></iframe>
uj5u.com熱心網友回復:
嘗試這種方式 :
onTap:(){
_authService
.createPerson(_nameController.text, _emailController.text,
_passwordController.text)
.then((value) {
if(value !=null){
return Navigator.push(context,
MaterialPageRoute(builder: (context) =>LoginScreen())。
}
else{
debugPrint("user is not authenticated")
}
});
uj5u.com熱心網友回復:
試一下:
InkWell(
onTap: () async {
await _authService
.createPerson(_nameController.text, _emailController.text,
_passwordController.text)。)
return Navigator.push(context,
MaterialPageRoute(builder: (context) => LoginScreen())。
},
孩子。容器(
margin: EdgeInsets.symmetric(izont: 60.0)。
對齊。Alignment.center,
高度。60.0,
裝飾。BoxDecoration(
color: Theme.of(context).primaryColor,
borderRadius: borderRadius.round(5.0)。
),
孩子。文本(
'Kay?t Ol',
風格。TextStyle(
color: Colors.white,
字體大小。25.0,
),
),
),
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/325750.html
標籤:
