【问题标题】:The getter 'emailVerified' was called on null. Receiver: null在 null 上调用了 getter 'emailVerified'。接收方:空
【发布时间】:2021-06-09 18:12:46
【问题描述】:

为什么我得到这个错误:我在其他类中使用这个确切的方式,它只是在这种情况下它会给出这个错误:


======== Exception caught by widgets library =======================================================
The following NoSuchMethodError was thrown building Wrapper(dirty, dependencies: [_InheritedProviderScope<Userr>]):
The getter 'emailVerified' was called on null.
Receiver: null
Tried calling: emailVerified

The relevant error-causing widget was: 
  Wrapper file:///Users/name/StudioProjects/project/lib/main.dart:47:36
When the exception was thrown, this was the stack: 
#0      Object.noSuchMethod (dart:core-patch/object_patch.dart:54:5)
#1      Wrapper.build (package:projectandroidstudiodenya/wrapper.dart:23:42)
#2      StatelessElement.build (package:flutter/src/widgets/framework.dart:4661:28)
#3      ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4587:15)
#4      Element.rebuild (package:flutter/src/widgets/framework.dart:4281:5)
...
====================================================================================================


This is my Wrapper class```
import 'package:firebase_auth/firebase_auth.dart';
import 'package:firebase_core/firebase_core.dart';
import 'package:flutter/material.dart';
import 'package:projectandroidstudiodenya/authenticate/resetpassword.dart';
import 'package:projectandroidstudiodenya/seitenleiste/homepage.dart';
import 'package:provider/provider.dart';
import 'authenticate/authenticate.dart';
import 'models/user.dart';



class Wrapper extends StatelessWidget {
  static const route='/Wrapper';


  @override
  Widget build(BuildContext context) {
    //Auth.auth().currentUser.isEmailVerified;
    //final user = Provider.of<UserCredential>(context);

    final user = Provider.of<Userr>(context);

    if(FirebaseAuth.instance.currentUser.emailVerified){
      return Homepage();
    }else if( FirebaseAuth.instance.currentUser != null) {
      return Authenticate();
    }else if(FirebaseAuth.instance.currentUser ==null){
      return Resedpasswort();
    }
    //return Home or Authenticate widget
  }
}

我尝试了 FirebaseAuth.instance.currentUser.emailVerified!=null 和 ==null。 同样的错误 请帮助,并且 user.emailverfiyed 也不起作用。我认为我需要以这种方式使用它。所以正如我在其他课程中所说的那样,这是可行的。

【问题讨论】:

    标签: firebase flutter authentication google-authentication


    【解决方案1】:

    这里的问题是 currentUser 为 null 而不是 emailVerified

    试试这个:

    class Wrapper extends StatelessWidget {
      static const route='/Wrapper';
    
    
      @override
      Widget build(BuildContext context) {
        //Auth.auth().currentUser.isEmailVerified;
        //final user = Provider.of<UserCredential>(context);
    
        final user = Provider.of<User>(context);
    
        if( FirebaseAuth.instance.currentUser == null) {
          return Authenticate();
        else if(FirebaseAuth.instance.currentUser.emailVerified){
          return Homepage();
        }
        else if(FirebaseAuth.instance.currentUser != null){
          return ResetPassword();
        }
        else 
        //return Home or Authenticate widget
      }
    }
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-22
    • 2021-09-07
    • 2023-03-20
    • 1970-01-01
    • 2021-09-13
    • 2021-03-06
    • 2021-06-25
    • 1970-01-01
    相关资源
    最近更新 更多