Android-Firebase-电子邮件地址格式错误 [英] Android - Firebase - The email address is badly formatted
问题描述
目标
允许用户注册自己的首选显示名称,家庭住址,电子邮件和密码,方法是使用 Firebase身份验证(电子邮件和密码)
Allow users to register their preferred display name, home address, email, and password by utilizing Firebase Authentication (Email and Password)
Java类
import android.content.Intent;
import android.support.annotation.NonNull;
import android.support.design.widget.TextInputLayout;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.Task;
import com.google.firebase.auth.AuthResult;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseAuthException;
public class RegistrationActivity extends AppCompatActivity {
private TextInputLayout jRegisterName;
private TextInputLayout jRegisterAddress;
private TextInputLayout jRegisterEmail;
private TextInputLayout jRegisterPassword;
private Button jRegisterRegBtn;
//Firebase
private FirebaseAuth mAuth;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_registration);
//Firebase Auth
mAuth = FirebaseAuth.getInstance();
jRegisterName = (TextInputLayout) findViewById(R.id.registerName);
jRegisterAddress = (TextInputLayout) findViewById(R.id.registerAddress);
jRegisterEmail = (TextInputLayout) findViewById(R.id.registerEmail);
jRegisterPassword = (TextInputLayout) findViewById(R.id.registerPassword);
jRegisterRegBtn = (Button) findViewById(R.id.registerRegBtn);
jRegisterRegBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String userDisplayName = jRegisterName.getEditText().toString();
String userHomeAddress = jRegisterAddress.getEditText().toString();
String userEmail = jRegisterEmail.getEditText().toString().trim();
String userPassword = jRegisterPassword.getEditText().toString().trim();
registerUser(userDisplayName, userHomeAddress, userEmail, userPassword);
}
private void registerUser(String userDisplayName, String userHomeAddress, String userEmail, String userPassword) {
mAuth.createUserWithEmailAndPassword(userEmail, userPassword).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
Intent intentMain = new Intent(RegistrationActivity.this, MainActivity.class);
startActivity(intentMain);
finish();
}else if(!task.isSuccessful()){
FirebaseAuthException e = (FirebaseAuthException )task.getException();
Toast.makeText(RegistrationActivity.this, "Failed Registration: "+e.getMessage(), Toast.LENGTH_SHORT).show();
return;
}
}
});
}
});
}
}
问题
用户输入诸如
名称:JohnSmith
Name : JohnSmith
家庭住址:18 King Street
HomeAddress : 18 King Street
电子邮件:johnsmith@gmail.com
Email : johnsmith@gmail.com
密码:123456789pass
Password : 123456789pass
用户注册失败,以下消息提示
The user fails to register and the message below prompts out
注册失败:电子邮件地址格式错误
"Failed Registration: The email address is badly formatted"
推荐答案
检查xml上的inputType文件。电子邮件上有3种输入类型。
Check your inputType on the xml file. There is 3 types of inputs on email.
android:inputType="textWebEmailAddress"
android:inputType="textEmailAddress"
android:inputType="textEmailSubject"
更多此处 https://developer.android.com/reference/android/text/InputType.html
这篇关于Android-Firebase-电子邮件地址格式错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!