颤振与振动;firebase:getter&x27;uid';isn';t为类型';用户凭证';

颤振与振动;firebase:getter&x27;uid';isn';t为类型';用户凭证';,firebase,flutter,dart,firebase-authentication,Firebase,Flutter,Dart,Firebase Authentication,我正在使用Flatter和firebase开发一个应用程序,我正在使用用户身份验证,我想使用函数uid,但它不起作用,为什么 import 'package:firebase_auth/firebase_auth.dart'; import 'package:firebase_database/firebase_database.dart'; class FirebaseHelper { //Authentification final auth = FirebaseAuth.instanc

我正在使用Flatter和firebase开发一个应用程序,我正在使用用户身份验证,我想使用函数
uid
,但它不起作用,为什么

import 'package:firebase_auth/firebase_auth.dart';
import 'package:firebase_database/firebase_database.dart';

class FirebaseHelper {

//Authentification
final auth = FirebaseAuth.instance;

Future<UserCredential> handleSignIn(String mail, String password) async{
 final UserCredential user = await auth.signInWithEmailAndPassword(email: mail, password: password);
 return user;
}

Future<UserCredential> handleCreate(String mail, String password, String prenom, String nom) async{
 final UserCredential user = await FirebaseAuth.instance.createUserWithEmailAndPassword(email: mail, password: password);
 String uid = user.uid;
 Map<String, String> map = {
   "prenom" : prenom,
   "nom" : nom,
 };
 addUser(uid, map);
 return user;
}

//database

static final base = FirebaseDatabase.instance.reference();
// ignore: non_constant_identifier_names
final base_user = base.child("users");

addUser(String id, Map map){
 base_user.child(uid).set(map);
}

}
import'package:firebase_auth/firebase_auth.dart';
导入“package:firebase_database/firebase_database.dart”;
类FirebaseHelper{
//认证
final auth=FirebaseAuth.instance;
Future handleSignIn(字符串邮件、字符串密码)异步{
final UserCredential user=使用email和password等待身份验证登录(电子邮件:mail,密码:password);
返回用户;
}
Future handleCreate(字符串邮件、字符串密码、字符串prenom、字符串nom)异步{
final UserCredential user=wait FirebaseAuth.instance.createUserWithEmailAndPassword(电子邮件:邮件,密码:密码);
字符串uid=user.uid;
地图={
“prenom”:prenom,
“nom”:nom,
};
addUser(uid,map);
返回用户;
}
//数据库
静态final base=FirebaseDatabase.instance.reference();
//忽略:非常量标识符名称
最终base_user=base.child(“用户”);
addUser(字符串id,映射){
基本用户.子(uid).set(映射);
}
}

是mark
没有为类型“UserCredential”定义getter“uid”。
未定义的名称“uid”。
我不知道我能做什么。。。请帮助我

在这种情况下,我发现将参考文档放在手边非常有用。在这里,您可以看到确实没有解释错误消息的
uid
属性。如果我们进一步浏览,您会注意到凭证有一个
user
属性,该属性又有一个
uid

所以


谢谢,这样做很好,但我使用final
UserCredential credential=wait FirebaseAuth.instance.createUserWithEmailAndPassword(email:mail,password:password);字符串uid=凭证。用户!。uid现在工作正常,但是在第33行(这里:
addUser(stringid,Map-Map){base\u user.child(uid.set(Map);
)}对我说,
未定义的名称“uid”。
或者
确实需要在
用户
之后。如果这解决了原来的问题,那么新的错误就是一个新问题,所以我建议发布一个带有更新代码和错误消息的新问题
 final UserCredential credential = await FirebaseAuth.instance.createUserWithEmailAndPassword(email: mail, password: password);
 String uid = credential.user.uid; // or credential.user?.uid if you're using null-safety