未调用数据库参考值EventListener

问题描述

我有一个应用程序,我使用电话号码身份验证注册用户,一切正常,但是当用户完成电话号码验证后,我想将用户的一些凭据推送到 实时数据库,但问题是我无法这样做......基本上卡住了,如果有人可以,我会很感激

  private fun signInWithAuthPhoneCredentials(credentials: PhoneAuthCredential) {
        FirebaseAuth.getInstance().signInWithCredential(credentials)
            .addOnCompleteListener {
                if(it.isSuccessful){
                    
              // so basically if authentication is successful,i want to create a path to save user
              // credentials which dosn't exist in the first place,upon checking if snapshot dosn't
              // exist,i want to get user details and push them into database
              // even with debugging,it gets to the last line of ( valueEventlister) and it stops 
              // there,it dson't even get to check wether snapshot exists or not 
 
                    val currentUser = FirebaseAuth.getInstance().currentUser
                    if(currentUser != null){
                        val databaseReference = FirebaseDatabase.getInstance().reference.child("users").child(currentUser.uid)
                        databaseReference.addListenerForSingleValueEvent(object : ValueEventListener{
                            override fun onDataChange(snapshot: DataSnapshot) {
                                if(!snapshot.exists()){
                                    val contactInfoMap = hashMapOf<String,Any>()
                                    contactInfoMap["name"] = currentUser.displayName!!
                                    contactInfoMap["phone"] = currentUser.phoneNumber!!

                                    databaseReference.updateChildren(contactInfoMap)
                                }

                                userIsLoggedIn()
                            }

                            override fun onCancelled(error: DatabaseError) {

                            }
                        })
                    }

                }
            }
            .addOnFailureListener {
                Log.d("ERROR TAG","Error ${it.message}")
            }
    }

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)