kotlin 当我尝试登录我的firebase帐户时,我收到一个错误,错误在这里,但我找不到它

gjmwrych  于 2023-04-21  发布在  Kotlin
关注(0)|答案(1)|浏览(168)
class FirestoreClass {
fun getUserDetails(activity: Activity){
    mFirestore.collection(Constants.USERS)
        .document(getCurrentUserID())
        .get()
  52      .addOnSuccessListener { document ->
            Log.i(activity.javaClass.simpleName, document.toString())

  55          val user = document.toObject(User::class.java)!!

            when(activity){
                is LoginActivity->{
                    activity.userLoggedInSuccess(user)
                }
            }
        }
        .addOnFailureListener { e->
            when(activity){
                is LoginActivity ->{
                    activity.hideProgressDialog()
                }

            }
            Log.e(
                activity.javaClass.simpleName,
                "Error while getting user details.",e
            )
        }
 }
}
LoginActivity ->
class LoginActivity : BaseActivity() {
 private fun logInRegisteredUser(){
        if (validateLoginDetails()) {
            showProgressDialog(resources.getString(R.string.please_wait))

            val email = binding.etEmail.text.toString().trim { it <= ' '}
            val password = binding.etPassword.text.toString().trim { it <= ' '}

            FirebaseAuth.getInstance().signInWithEmailAndPassword(email, password)
                .addOnCompleteListener { task ->

                    if (task.isSuccessful){
                        FirestoreClass().getUserDetails(this@LoginActivity)
                    }else{
                        hideProgressDialog()
                        showErrorSnackbar(task.exception!!.message.toString(),true)
                    }
                }
        }
    }
}

java.lang.NullPointerException at com.xikmat.osonjob.firestore.FirestoreClass$getUserDetails$1.invoke(FirestoreClass.kt:55)at com.xikmat.osonjob.firestore.FirestoreClass$getUserDetails$1.invoke(FirestoreClass.kt:52)

toiithl6

toiithl61#

你不应该在Kotlin中使用**!!**。用check null normal替换它

document?.let{ doc ->
    val user = doc.toObject(User::class.java)
    //do something here
    if(activity is LoginActivity){
        activity.userLoggedInSuccess(user)
    }
}

相关问题