簡體   English   中英

getter 'uid' 被調用為 null。 接收者:空嘗試調用:uid

[英]The getter 'uid' was called on null. Receiver: null Tried calling: uid

此錯誤““在 null.Receiver 上調用了 getter 'uid':nullTried 調用:uid”

當我嘗試從“主屏幕除外”任何屏幕退出時,我遇到了,

這個問題有什么解決辦法嗎??

包裝:


class Wrapper extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    final user = Provider.of<User_fb>(context);

    // return home or login
    if (user == null) {
      return Login();
    } else {
      print(user.uid);

      return Home();
    }
  }
}

身份驗證:

Future Signinwithemailandpassword(var Res_email,var Res_Password) async{

    try{
        UserCredential result= await _auth.signInWithEmailAndPassword(email: Res_email, password: Res_Password);
        User user = result.user;
        return _userfromfirebase(user);
    }catch(e){
      return null;
    }

}

Future signOut () async{
try{
  return await _auth.signOut();
}
catch(e){
print(e.toString());
print("error at signOut ");
return null;
}
}

主要的 :

void main() async {
  WidgetsFlutterBinding.ensureInitialized();

  await Firebase.initializeApp();

  runApp(Main());
}

class Main extends StatefulWidget {
  @override
  _MainState createState() => _MainState();
}

class _MainState extends State<Main> {
  @override
  Widget build(BuildContext context) {

    return StreamProvider<User_fb>.value(
      value: Authservice().user,
      child: MaterialApp(
        debugShowCheckedModeBanner: false,
        theme: ThemeData(
            primaryColor: Color.fromRGBO(255, 255, 255, 1),
            shadowColor: Colors.transparent,
            highlightColor: Colors.transparent),
        home: Wrapper(),

      ),
    );
  }
}

退出按鈕:

ListTile(
                       leading: Icon(Ionicons.log_out_outline,
                           color: Color.fromRGBO(86, 197, 150, 1)),
                       title: Text('Log out'),
                       onTap: () async {
                         await _auth.signOut();
                       },
                     ),

安慰 :

======== 小部件庫捕獲的異常 ================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================ ================== 在構建 Br(dirty, dependencies: [_InheritedProviderScope<User_fb>], state: _QrState#24e19) 時拋出了以下 NoSuchMethodError:getter 'uid' 是調用 null。 接收者:空嘗試調用:uid

相關的導致錯誤的小部件是:Qr file:///G:/AndroidStudioProjects/facem/lib/Screens/Home/Home.dart:687:67 拋出異常時,這是堆棧:#0 Object.noSuchMethod (dart:core-patch/object_patch.dart:54:5) #1 _QrState.build (package:my_compound/Screens/Qr/qr.dart:99:45) #2 StatefulElement.build (package:flutter/src/widgets /framework.dart:4691:27) #3 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4574:15) #4 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4746 :11) ...

發生這種情況是因為用戶為空,所以使用空檢查運算符。 像這個 user?.uid 或 user.uid ?? '',

提示:在使用顫振時始終使用 dart null 安全。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM