首页 > 解决方案 > Firebase 身份验证无法正常工作,我该如何解决?

问题描述

defaultConfig{multiDexEnabled true}
implementation platform('com.google.firebase:firebase-bom:28.4.0')
implementation 'com.firebaseui:firebase-ui-auth:7.2.0'

implementation 'com.android.support:multidex:1.0.3'

gradle firebase 实现

private lateinit var et_custID:EditText
private lateinit var et_custName:EditText
private lateinit var et_custEmail:EditText
private lateinit var et_custPostAddress:EditText
private lateinit var et_custPhoneNumber:EditText
private lateinit var et_custPassword:EditText
private lateinit var btnCustRegister:Button
private lateinit var cAuth:FirebaseAuth

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_register)

    et_custID=findViewById(R.id.et_custID)
    et_custName=findViewById(R.id.et_custName)
    et_custEmail=findViewById(R.id.et_custEmail)
    et_custPostAddress=findViewById(R.id.et_custPostAddress)
    et_custPhoneNumber=findViewById(R.id.et_custPhoneNumber)
    et_custPassword=findViewById(R.id.et_custPassword)
    btnCustRegister=findViewById(R.id.btnCustRegister)
    cAuth= FirebaseAuth.getInstance()

    @Suppress("DEPRECATION")
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
        window.insetsController?.hide(WindowInsets.Type.statusBars())
    } else {
        window.setFlags(
            WindowManager.LayoutParams.FLAG_FULLSCREEN,
            WindowManager.LayoutParams.FLAG_FULLSCREEN
        )
    }

    btnCustRegister.setOnClickListener {
        val email = et_custEmail.text.toString()
        val password = et_custPassword.text.toString()
        register(email,password)
    }
}
private fun register(email:String,password:String){
    //Register the user in the database
    cAuth.createUserWithEmailAndPassword(email, password)
        .addOnCompleteListener(this) { task ->
            if (task.isSuccessful) {
                // Sign in success, update UI with the signed-in user's information
                val intent = Intent(this, CustLoginActivity::class.java)
                startActivity(intent)
            } else {
                // If sign in fails, display a message to the user.
                Toast.makeText(this, "Some error occurred", Toast.LENGTH_SHORT).show()
            }
        }
}

我没有错误消息显示(非错误列表并且可以运行程序),但是当我已经使用电子邮件 xxxx@gmail.com 和密码 abcde 键入时,会触发 toast。而且 firebase 部分也不会创建新的身份验证。

标签: androidfirebasekotlinfirebase-authentication

解决方案


现在我知道错误原因是什么了......所需密码的错误原因必须是包含数字小写字母和大写字母的字符串,例如“abc123ABC”


推荐阅读