When I use the Update_User_Information()
after else if
then dataSnapshot.value.toString()
shows null value and because of that Update_User_Information()
gets executed.
FirebaseDatabase.getInstance().getReference("Users").child(firebaseAuth.uid!!).addListenerForSingleValueEvent(object : ValueEventListener {
override fun onDataChange(dataSnapshot: DataSnapshot) {
if (dataSnapshot.value.toString().contains(signup_username)) {
progressDialog.dismiss()
binding.signupUsername.error = "This username is already registered"
return
}
else if (dataSnapshot.value.toString().contains(signup_phone)) {
progressDialog.dismiss()
binding.signupUsername.error = "This Phone Number is already registered"
return
}
Toast.makeText(this@Signup, dataSnapshot.value.toString(), Toast.LENGTH_LONG).show() // shows null
Update_User_Information()
}
override fun onCancelled(error: DatabaseError) {
Toast.makeText(this@Signup, "There is a problem in database. Please report this issue to support.", Toast.LENGTH_LONG).show()
}
})
but if I use same code with a litte change then it works but it also executes the
FirebaseDatabase.getInstance().getReference("Users").child(firebaseAuth.uid!!).addListenerForSingleValueEvent(object : ValueEventListener {
override fun onDataChange(dataSnapshot: DataSnapshot) {
if (dataSnapshot.value.toString().contains(signup_username)) {
progressDialog.dismiss()
binding.signupUsername.error = "This username is already registered"
}
else if (dataSnapshot.value.toString().contains(signup_phone)) {
progressDialog.dismiss()
binding.signupUsername.error = "This username is already registered"
}
}
override fun onCancelled(error: DatabaseError) {
Toast.makeText(this@Signup, "There is a problem in database. Please report this issue to support.", Toast.LENGTH_LONG).show()
}
})
Update_User_Information()
What I am trying to do is, checking the username and phone number if it's registered in my database or not, if it's found in my database then I don't want to execute Update_User_Information()
. Any solution ?