I want to show username at my database, but database written null. I think because my variable don't get declaration in DataSnapshot. this is my script
private fun saveDataToFireBase() {
var currentName : String? = null
useRef.child(mAuth).addValueEventListener(object : ValueEventListener{
override fun onDataChange(p0: DataSnapshot) {
if (p0.exists()){
currentName = p0.child("username").getValue().toString()
}
}
override fun onCancelled(p0: DatabaseError) {
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
}
})
val uuid = UUID.randomUUID().toString()
val messageText = edt_input.text.toString()
val ref = FirebaseDatabase.getInstance().getReference("message-group/$uuid")
val data = ChatModel ( uuid, currentName.toString(), messageText , mAuth, "" )
ref.setValue(data)
}
If in java we make variable before onCreate
then:
private fun saveDataToFireBase() {
useRef.child(mAuth).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot)
{
if (dataSnapshot.exists())
{
currentUserName = dataSnapshot.child("name").getValue().toString();
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});