Hi I have a scenario where in I enter the username password based on the credentials it will redirect the user to second screen . I am not sure where did I got wrong? but I am getting this error below: Unhandled Exception: Navigator operation requested with a context that does not include a Navigator.
Here is the code:
import 'package:firebase_auth/firebase_auth.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'Animation/FadeAnimation.dart'; import 'AuthenticationService.dart'; import 'PatientList.dart'; class HomePage extends StatelessWidget { final TextEditingController emailController = TextEditingController(); final TextEditingController passwordController = TextEditingController(); gotoPatientList(BuildContext context) { Navigator.push( context, MaterialPageRoute(builder: (context) =>PatientList()), ); } @override Widget build(BuildContext context) { return MultiProvider( providers: [ Provider<AuthenticationService>( create: (_) => AuthenticationService(FirebaseAuth.instance), ), StreamProvider( create: (context) => context.read<AuthenticationService>().authStateChanges, ), ], child:MaterialApp( home: SingleChildScrollView( child:RaisedButton( onPressed: () { gotoPatientList(context); context.read<AuthenticationService>().signIn( email: emailController.text.trim(), password: passwordController.text.trim(), ); }, child: Container( child: Column( children: <Widget>[ Container( height: 400, decoration: BoxDecoration( image: DecorationImage( image: AssetImage('assets/images/loginHeader.png'), fit: BoxFit.fill)), child: Stack( children: <Widget>[], ), ), Padding( padding: EdgeInsets.all(30.0), child: Column( children: <Widget>[ FadeAnimation( 1.8, Container( padding: EdgeInsets.all(5), decoration: BoxDecoration( color: Colors.white, borderRadius: BorderRadius.circular(10), boxShadow: [ BoxShadow( color: Color.fromRGBO(143, 148, 251, .2), blurRadius: 20.0, offset: Offset(0, 10)) ]), child: Column( children: <Widget>[ Container( padding: EdgeInsets.all(8.0), decoration: BoxDecoration( border: Border( bottom: BorderSide( color: Colors.grey[100]))), child: TextField( controller: emailController, decoration: InputDecoration( border: InputBorder.none, hintText: "Email or Phone number", hintStyle: TextStyle( color: Colors.grey[400])), ), ), Container( padding: EdgeInsets.all(8.0), child: TextField( controller: passwordController, obscureText: true, decoration: InputDecoration( border: InputBorder.none, hintText: "Password", hintStyle: TextStyle( color: Colors.grey[400])), ), ) ], ), )), SizedBox( height: 30, ), FadeAnimation( 2, Container( height: 50, decoration: BoxDecoration( borderRadius: BorderRadius.circular(10), gradient: LinearGradient(colors: [ Color.fromRGBO(214, 0, 27, 1), Color.fromRGBO(214, 0, 27, 1), ])), child: Center( child: Text( "Login", style: TextStyle( color: Colors.white, fontWeight: FontWeight.bold), ), ), )), SizedBox( height: 70, ), FadeAnimation( 1.5, Text( "Forgot Password?", style: TextStyle( color: Color.fromRGBO(214, 0, 27, 1)), )), ], ), ) ], ), ), ), ), ), ); } } class AuthenticationWrapper extends StatelessWidget { @override Widget build(BuildContext context) { final firebaseUser = context.watch<User>(); if (firebaseUser != null) { return HomePage(); } return PatientList(); } }