我目前在尝试允许用户使用Firebase身份验证通过我的应用程序创建帐户时遇到问题。方法: createUserWithEmailAndPassword()
错误: 尝试在空对象引用上调用虚拟方法'com.google.android.gms.tasks.Task com.google.firebase.auth.FirebaseAuth.createUserWithEmailAndPassword(java.lang.String,java.lang.String)'
我不得不将我的应用程序迁移到Android X,因为我使用Firestore作为数据库,并且一切正常,直到需要测试帐户的创建。我已经尝试了一切,从更改build.gradle文件中的依赖关系到更改pubspec.yaml文件中的插件版本。什么都没用。我还启用了Firebase控制台中的电子邮件和密码登录。
当前正在使用的Pubspec插件:
http: ^0.12.0+2
cloud_firestore: ^0.9.0
google_sign_in: ^4.0.1+3
firebase_auth: ^0.9.0
location: "^2.3.5"
geolocator: ^4.0.0
Firebase身份验证代码:
FirebaseAuth _auth = FirebaseAuth.instance;
Future<FirebaseUser> handleRegistration (String *,
String *,String *, String *, String *,
String *, String *, String *, String *,
String *, String *, String *,
String medName, String medNum, String emrgName,
String emrgNum, String emailAdd,String password) async{
try{
final FirebaseUser user = await _auth.createUserWithEmailAndPassword(email: emailAdd,password: password);
assert(user != null);
assert(await user.getIdToken()!= null);
if(user!= null){
getLocation();
if(await user.getIdToken() != null){
if(isMember == "Yes"){
String validateMembership = checkUsersClubReg(user.uid, clubName);
if(validateMembership == "Active"){
var clubDetails = validateMembership.split(',');
createUsersAccount(*, *, *, *, *,
*, *, *, *, *, *, "*",
*, user.uid, medName, medNum, emrgName, emrgNum,"Inactive","0" );
}else{
createUsersAccount(*, *, *, *, *,
*, *, *, *, *, *, "*",
*, user.uid, medName, medNum, emrgName, emrgNum,"Inactive","0");
}
}
}
return user;
}
}on AuthException catch(ex){
print(ex.code.toString());
}
}
预期结果:用户帐户已写入Firebase身份验证 实际结果: 代码中断,错误: 尝试在空对象引用上调用虚拟方法'com.google.android.gms.tasks.Task com.google.firebase.auth.FirebaseAuth.createUserWithEmailAndPassword(java.lang.String,java.lang.String)'