`我正在尝试从用户动态提取电子邮件以创建帐户,但Firebase不断返回电子邮件错误...我想知道是否可以动态提取电子邮件或者您必须对电子邮件和密码进行硬编码。
final EditText email = (EditText)findViewById(R.id.new_email);
final String newEmail = email.getText().toString();
final EditText password = (EditText)findViewById(R.id.new_password);
final String newPass = password.getText().toString();
final EditText username = (EditText)findViewById(R.id.full_name);
final String userName = username.getText().toString();
@Override
public void onClick(View v){
rootRef.createUser(newEmail,newPass,new Firebase.ValueResultHandler<Map<String,Object>>(){
@Override
public void onSuccess(Map<String,Object> result){
rootRef.child("users").child(userName).child("User Name").setValue(userName);
rootRef.authWithPassword(newEmail,newPass,new Firebase.AuthResultHandler(){
@Override
public void onAuthenticated(AuthData authData){
Intent a = new Intent(CreateAccount.this,userHome.class);
startActivity(a);
}
@Override
public void onAuthenticationError(FirebaseError firebaseError){
text1.setText("An error occurred.Please try again");
}
});
}
@Override
public void onError(FirebaseError firebaseError){
Fragment createAccount = new Fragment();
getSupportFragmentManager().beginTransaction().add(R.id.sign_up_fail,createAccount).commit();
switch (firebaseError.getCode()){
case FirebaseError.EMAIL_TAKEN:
text1.setText("That Email is already taken");
break;
case FirebaseError.INVALID_EMAIL:
text1.setText("That Email is invalid");
break;
case FirebaseError.NETWORK_ERROR:
text1.setText("Network Error.Check your connection.");
}
}
});
}
});
答案 0 :(得分:0)
您可以发布Firebase返回的错误。
您不必硬编码电子邮件或密码,请查看他们的教程页面以获取Android用户身份验证:https://www.firebase.com/docs/android/guide/user-auth.html
*编辑*
以下是个人代码中可能对您有帮助的示例。
referencia.createUser(email.getText().toString(), senha.getText().toString(), new Firebase.ValueResultHandler<Map<String, Object>>()
{
@Override
public void onSuccess(Map<String, Object> result)
我目前在功能齐全的应用上使用它。如果您的工作不正常,您可以发送错误消息。