
Flutterのnullエラー Null check operator used on a null value解決
Flutter勉強中の初級レベルの備忘録です。
FlutterFire でgoogleログインして、ログインしてない場合はログインスクリーンへ飛ばしたいという機能を考えてみます。
_auth.currentUser?.uid
上記のように書くと、FlutterFire でgoogleログイン状態がとれるんですけど、もしログインしてない場合は、nullが返ってくる。
それでnullを普通に比較しようとすると、Null check operator used on a null value のエラーが出ます。これを直すためには、下記のように書きます。
var isUserLogin = _auth.currentUser?.uid ?? false;
home: isUserLogin == false ? LoginScreen() : ProfileScreen(),
これで、Null check operator used on a null value に引っかからずにコードが動きます。
これは、初期化されていない nullable インスタンスに bang 演算子(!)を使用した場合に発生するので、
最初に初期化して、それを比較すればnull に対応できるということですよね。
ちなみに、null判定の比較の部分は、こちらを参考にしてみてください。
bool outConn = null ?? false; // false
bool outConn = false ?? false; // false
bool outConn = true ?? false; // true