我使用Firebase授权创建了注册活动,并试图注册新用户,但当我按下注册按钮时,我的代码出现异常
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register);
etUsername = (EditText) findViewById(R.id.etUserName);
etEmail = (EditText) findViewById(R.id.etEmailRegiter);
etPassword = (EditText) findViewById(R.id.etPasswordRegiter);
etPasswordRe = (EditText) findViewById(R.id.etPasswordRegiterRe);
register = (Button) findViewById(R.id.btnRegister);
passwordRule = (LinearLayout) findViewById(R.id.password_rule);
etPassword.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
passwordRule.setVisibility(View.VISIBLE);
}
});
mAuth = FirebaseAuth.getInstance();
register.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
createAccount(etUsername.getText().toString(), etPassword.getText().toString());
}
});
}
private void createAccount(String email, String password) {
Log.d(LOG_TAG, "createAccount:" + email);
// if (!validateForm()) {
// return;
// }
mAuth.createUserWithEmailAndPassword(email, password)
.addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
Log.d(LOG_TAG, "createUserWithEmail:success");
FirebaseUser user = mAuth.getCurrentUser();
Log.d(LOG_TAG, ":" + mDatabase.child(PATH_TO_DATA_USERS));
// sendEmailVerification();
// Intent intent = new Intent(getContext(), MainActivity.class);
// intent.putExtra("user", user.getUid());
// startActivity(intent);
}
else {
try {
throw task.getException();
} catch(FirebaseAuthWeakPasswordException e) {
etPassword.setError("weak password");
etPassword.requestFocus();
} catch(FirebaseAuthInvalidCredentialsException e) {
etEmail.setError("invalid credential exception");
etEmail.requestFocus();
} catch(FirebaseAuthUserCollisionException e) {
etEmail.setError("collision exception");
etEmail.requestFocus();
} catch(Exception e) {
Log.e(LOG_TAG, e.getMessage());
}
Log.w(LOG_TAG, "createUserWithEmail:failure", task.getException());
Log.d(LOG_TAG, ":" + (mAuth == null));
Toast.makeText(RegisterActivity.this, "Authentication failed.",
Toast.LENGTH_SHORT).show();
}
}
});
}
xml代码:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_marginTop="50dp"
>
<EditText
android:id="@+id/etUserName"
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp"
android:layout_width="match_parent"
android:layout_weight="1"
android:layout_height="wrap_content"
android:hint="@string/hint_user_name"/>
<EditText
android:id="@+id/etEmailRegiter"
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp"
android:layout_width="match_parent"
android:layout_weight="1"
android:layout_height="wrap_content"
android:hint="@string/hint_email"/>
<EditText
android:id="@+id/etPasswordRegiter"
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp"
android:layout_width="match_parent"
android:layout_weight="1"
android:hint="@string/hint_password"
android:inputType="textPassword"
android:layout_height="wrap_content"/>
<EditText
android:id="@+id/etPasswordRegiterRe"
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp"
android:layout_width="match_parent"
android:layout_weight="1"
android:hint="@string/hint_password_re"
android:inputType="textPassword"
android:layout_height="wrap_content"/>
</LinearLayout>
<LinearLayout
android:id="@+id/password_rule"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="gone">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/password_rule"
android:layout_marginLeft="17dp"
android:layout_marginRight="17dp"
android:layout_marginTop="5dp"
android:textSize="17sp"/>
</LinearLayout>
<Button
android:id="@+id/btnRegister"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:text="@string/button_register"/>
</LinearLayout>
在日志中得到这样的错误
E/Volley: [187] BasicNetwork.performRequest: Unexpected response code 400 for https://www.googleapis.com/identitytoolkit/v3/relyingparty/signupNewUser?key=AIzaSyAPBVdM4hZpPBvTZrvE9gBjld0otb202Lg
I/AuthChimeraService: Error description received from server: {
"error": {
"errors": [
{
"domain": "global",
"reason": "invalid",
"message": "INVALID_EMAIL"
}
],
"code": 400,
"message": "INVALID_EMAIL"
}
}
这是我的gradle依存关系
compile 'com.google.firebase:firebase-database:10.0.1'
compile 'com.google.firebase:firebase-core:10.0.1'
compile 'com.google.firebase:firebase-auth:10.0.1'