I am developing a quiz application whereby a User takes a quiz and after 10 questions the score is saved to a database in Firebase.
Here is my code at present:
String user_id = mAuth.getCurrentUser().getUid();
DatabaseReference current_user_db =
FirebaseDatabase.getInstance().getReference().child("Score").child(user_id);
final int score = mScore;
**databaseUserName = FirebaseDatabase.getInstance().getReference().child("Users").child(user_id).child("username");
databaseUserName.addValueEventListener(new com.google.firebase.database.ValueEventListener() {
@Override
public void onDataChange(com.google.firebase.database.DataSnapshot dataSnapshot) {
String username = dataSnapshot.getValue().toString();
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});**
//Ensures everything saves at the same time
Map newPost = new HashMap();
newPost.put("Score", score);
**newPost.put("Username", username);**
current_user_db.setValue(newPost);
The part enclosed in ** ** is where I am having some difficulties.
The user signs up to my app using FirebaseAuth, then using the UID I have stored name and username in a 'Users' realtime database.
I would like the score databse to save the final score with the username not the autogenerated UID. I'm just not sure how to get the username and then save it to the new database.
I have also attached a screenshot of how my current database looks.
I have only been using Firebase and Android Studio a few weeks so any help/links are all appreciated.