Мое требование состоит в том, что, если идентификатор документа существует в Firestore, он вернет домашнюю страницу; иначе, если он не существует, он вернет страницу проверки.
Моя проблема в том, что если do c существует, то домашняя страница отображается правильно, но, когда do c не существует, затем он должен вернуть страницу подтверждения, как описано выше; в этом случае он появляется, но всякий раз, когда я нажимаю кнопку «Назад», он снова возвращает домашнюю страницу.
Ниже мой код:
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatefulWidget {
@override
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
var globalNumber;
var Number;
Firestore firestore = Firestore.instance;
var x;
@override
void initState() {
// TODO: implement initState
super.initState();
getCurrentUser();
x = Future.wait([
firestore.collection('users').document(globalNumber).get()
]);
}
@override
Widget build(BuildContext context) {
print(globalNumber);
return MaterialApp(
debugShowCheckedModeBanner: false,
home: StreamBuilder<Object>(
stream: FirebaseAuth.instance.onAuthStateChanged,
builder: (BuildContext context, snapshot) {
if (snapshot.hasData) {
return FutureBuilder(
future: x,
builder: (BuildContext context,
AsyncSnapshot<List> snapshot) {
if(snapshot.hasData){
DocumentSnapshot doc = snapshot.data[0];
print(doc);
if (doc.exists || doc != null) {
return HomePage();
}
else {
return AccountDetialsPage();
}
}
else{
return Container(child: Text('Loading...'),);
}
}
);
} else {
return Phoneverification();
}
}),
) ;
}
getCurrentUser() async{
final FirebaseAuth _auth = FirebaseAuth.instance;
final FirebaseUser user = await _auth.currentUser();
final uid = user.uid;
globalNumber = user.phoneNumber;
// Similarly we can get email as well
//final uemail = user.email;
}
}
Скажем, в приведенном ниже примере идентификатор документа не существует, то он возвращает страницу подтверждения учетной записи, как ожидалось. Но когда я нажимаю кнопку «Назад», он возвращается на домашнюю страницу ...
Я не знаю, почему это происходит.
After hitting back:
введите описание изображения здесь