【发布时间】:2017-12-11 16:13:30
【问题描述】:
我正在尝试在 firebase 中注册用户。这是我的代码:
应用级分级:
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.1'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
compile 'com.google.firebase:firebase-core:11.6.2'
compile 'com.google.firebase:firebase-auth:11.6.2'
}
项目级分级:
dependencies {
classpath 'com.android.tools.build:gradle:3.0.1'
classpath 'com.google.gms:google-services:3.1.1' // google-services plugin
我的注册用户代码:
private void registerUser(String name,String email,String password) {
pBar.setVisibility(View.VISIBLE);
mAuth.createUserWithEmailAndPassword(email,password).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if(task.isSuccessful()){
Toast.makeText(getApplicationContext(),"User Created. Please login.",Toast.LENGTH_LONG).show();
}
else {
Toast.makeText(getApplicationContext(),task.getException().getMessage(),Toast.LENGTH_LONG).show();
}
pBar.setVisibility(View.GONE);
}
});
}
这是一个例外:
java.lang.NullPointerException: Attempt to invoke virtual method 'com.google.android.gms.tasks.Task com.google.android.gms.common.api.GoogleApi.zzb(com.google.android.gms.common.api.internal.zzdf)' on a null object reference
at com.google.android.gms.internal.zzdtp.zzb(Unknown Source)
at com.google.android.gms.internal.zzdtw.zza(Unknown Source)
at com.google.firebase.auth.FirebaseAuth.createUserWithEmailAndPassword(Unknown Source)
at com.banik.helloworld.SignUpActivity.registerUser(SignUpActivity.java:73)
at com.banik.helloworld.SignUpActivity.onClick(SignUpActivity.java:68)
我已经在活动的 oncreate 方法中初始化了 mAuth:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sign_up);
mAuth = FirebaseAuth.getInstance();
name = findViewById(R.id.name);
email = findViewById(R.id.email);
mobileNumber = findViewById(R.id.mobilenumber);
password = findViewById(R.id.password);
signUpBtn = findViewById(R.id.signup);
signUpBtn.setOnClickListener(this);
pBar = findViewById(R.id.signupBar);
}
请帮帮我.......
【问题讨论】:
-
mAuth 为空。你需要初始化它
-
他是在 setContentView 下完成的
-
很可能字符串名称为空
-
您是否将文本保存到除投射之外的各种电子邮件和密码。意思是你给了代码
passwordtext = password.getText().toString();,你必须把这个密码texd传递给函数 -
@Tomin B 这是我的电话
registerUser(name.getText().toString(),email.getText().toString(),password.getText().toString()) ;
标签: android firebase firebase-authentication