[英]Problem creating user with email and password with Firebase
我是 android dev 和 Kotlin 的新手,代码工作正常,直到我添加了一些验证。 我不知道我是否有太多的 if 语句,或者即使它们似乎有效,我还是把验证都弄错了。 任何帮助,将不胜感激
reg.setOnClickListener {
val eml = email.text.toString()
val passwr = password.text.toString()
val confirmPsw = confirmPsswrd.text.toString()
val fName = findViewById<EditText>(R.id.f_name).text.toString()
val lName = findViewById<EditText>(R.id.l_name).text.toString()
if (Patterns.EMAIL_ADDRESS.matcher(eml).matches()) {
if (passwr == confirmPsw && passwr.length >= 4) {
if (fName != "" || lName != "") {
auth.createUserWithEmailAndPassword(eml, passwr)
.addOnCompleteListener (this) { task ->
//if task isn't successful
if (task.isSuccessful) {
Toast.makeText(
this@Register,
" Successfully Registered, Login to continue",
Toast.LENGTH_SHORT
).show()
} else {
Toast.makeText(
this@Register,
" Registration error",
Toast.LENGTH_SHORT
).show()
}
}
} else {
val builder = AlertDialog.Builder(this)
with(builder)
{
setTitle("Some Fields Were Left Empty!!")
setMessage("*Please Enter Your First and Last Name(s)")
setPositiveButton(
"OK",
DialogInterface.OnClickListener(function = buttonClick)
)
show()
}
}
} else if (passwr.length < 4) {
password.error = "Password must be at least 4 characters long"
password.requestFocus()
} else {
confirmPsswrd.error = "Passwords don't match"
confirmPsswrd.requestFocus()
}
} else {
email.error = "Please enter a valid Email Address"
email.requestFocus()
}
}
最好用你的 addTextChangedListener 来做
private fun passwordchanged(){
binding.passwordTextForSignUp.addTextChangedListener(object: TextWatcher{
override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {
}
override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
val pass = binding.passwordTextForSignUp.text.toString().trim()
try {
if (PASSWORD_PATTERN.matcher(pass).matches()){
}
else{
binding.passwordTextForSignUp.setError("Invalid Password!")
binding.passwordTextForSignUpLayout.helperText = "Must be at least one number, at least one special character and at least 8 characters."
}
}catch (e : Exception){
Toast.makeText(this@SignUpActivity,e.localizedMessage,Toast.LENGTH_LONG).show()
}
}
和
private val PASSWORD_PATTERN: Pattern = Pattern.compile(
"^" + "(?=.*[0-9])" + //at least 1 digit
//"(?=.*[a-z])" + //at least 1 lower case letter
//"(?=.*[A-Z])" + //at least 1 upper case letter
"(?=.*[a-zA-Z])" + //any letter
"(?=.*[@#$%^&+=.])" + //at least 1 special character
"(?=\\S+$)" + //no white spaces
".{8,}" + //at least 8 characters
"$"
)
在“class SignUpActivity: AppCompatActivity() {”下添加正则表达式
如果你想稍后再检查它们,你可以在按钮上添加一个if并查询它是否为空。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.