Reputation: 1
import "package:flutter/material.dart";
import 'package:firebase_auth/firebase_auth.dart';
import 'package:tezuygulamasi/home_page.dart';
import 'package:tezuygulamasi/sign_in_page.dart';
class LandingPage extends StatefulWidget {
@override
_LState createState() => _LState();
}
class _LState extends State<LandingPage> {
late User _user;
@override
void initState() {
super.initState();
_checkUser();
}
@override
Widget build(BuildContext context) {
if(_user == null){
return SignInPage();
} else {
return HomePage(
user: _user,
);
}
}
Future<void> _checkUser() async{
_user = (await FirebaseAuth.instance.currentUser)!;
}
}
Since the code is written in this way, it gives the error I mentioned in the title. I know the reason for this error is the use of "late". When I delete it, I run into a problem like this.**
Another Page Code
import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/material.dart';
class HomePage extends StatelessWidget {
final User user;
HomePage({Key? key, required this.user}) : super(key: key);
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("Anasayfa"),
),
body: Center(
child: Text("Hoşgeldiniz ${user.uid}"),
),
);
}
}
The "_user" or "User" parameters are causing problems. Thank you for helping.
Upvotes: 0
Views: 487
Reputation: 1324
Dart now supports null safety by default. The problem here is you declared a variable _user
which can't be null but checking it is null or not. You can declare the variable as User? _user
or call the future code inside a FutureBuilder
widget.
Upvotes: 1