颤振与振动;firebase:参数类型';字符串?';can';不能分配给参数类型';字符串';

颤振与振动;firebase:参数类型';字符串?';can';不能分配给参数类型';字符串';,firebase,flutter,dart,firebase-authentication,Firebase,Flutter,Dart,Firebase Authentication,我正在为用户进行身份验证(使用firebase),我初始化了一个变量类型String,但它不起作用 String? _mail; String? _password; String? _prenom; String? _nom; [...] _handlelog(){ if(_mail != null){ if(_password != null){ if(_log == true){ //se connecter Firebase

我正在为用户进行身份验证(使用firebase),我初始化了一个变量类型
String
,但它不起作用

String? _mail;
String? _password;
String? _prenom;
String? _nom;
[...]
    _handlelog(){
  if(_mail != null){
    if(_password != null){
      if(_log == true){
        //se connecter
        FirebaseHelper().handleSignIn(_mail, _password).then(((UserCredential user) {
          print("Nous avons un user");
        })).catchError((error){
          alerte(error.toString());
        });
      }else{
        if(_prenom != null){
          if(_nom != null){
            //créer un compte avec les données de l'utilisateur
            FirebaseHelper().handleCreate(_mail, _password, _prenom, _nom).then(((UserCredential user) {
              print("Nous avons pu créer un user");
            })).catchError((error){
              alerte(error.toString());
            });
          }else{
            //Alert nom
            alerte("veuillez entrer un nom pour continuer");
          }
        }else{
          //Alert prenom
          alerte("veuillez entrer un prenom pour continuer");
        }
      }
    }else{
      //Alert password
      alerte("le mot de passe est vide");
    }
  }else{
    //Alert mail
    alerte("l'adresse mail est vide");
  }
  }
[...]
我的函数
FirebaseHelper()

类FirebaseHelper{
//认证
final auth=FirebaseAuth.instance;
Future handleSignIn(字符串邮件、字符串密码)异步{
final UserCredential credential=使用email和password等待身份验证登录(电子邮件:mail,密码:password);
返回凭证;
}
Future handleCreate(字符串邮件、字符串密码、字符串prenom、字符串nom)异步{
final UserCredential credential=等待FirebaseAuth.instance.createUserWithEmailAndPassword(电子邮件:邮件,密码:密码);
字符串uid=凭证。用户!.uid;
地图={
“uid”:uid,
“prenom”:prenom,
“nom”:nom,
};
addUser(uid,map);
返回凭证;
}

当我使用字符串时,它的标记是:
参数类型'String'不能分配给参数类型'String'。
对于所有
字符串?
字符串?
是可空类型,而
字符串
不是

您需要使用
字符串
并对其进行初始化,或者创建一个从
字符串返回
字符串的方法?

例如:

String nStringToNNString(String? str) {
     return str ?? "";
}
您应该在官方文件中阅读:

String nStringToNNString(String? str) {
     return str ?? "";
}