0

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 ?

Here is the image of my databse

Zeltrax
  • 1
  • 1
  • Please don't post duplicate [questions](https://stackoverflow.com/questions/69419462/datasnapshot-value-is-null-when-used-with-else-or-bellow-else-if?noredirect=1#comment122738386_69419462). – Alex Mamo Oct 05 '21 at 09:08
  • I didn't found any solution :(, Can you help me pls ? @AlexMamo – Zeltrax Oct 05 '21 at 11:51

0 Answers0