Q:

How do I add new, real players to a leaderboard using Firebase?

Right now, I have a leaderboard that my app displays using fake players that I have generated in Firebase, like so:

I want to know how I can add the name of every new player that plays my app to the leaderboard.
Right now, my code manually takes in each fake player, and I don't have an automated way of taking n number of players in
user2.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                // This method is called once with the initial value and again
                // whenever data at this location is updated.
                String value_temp = dataSnapshot.getValue(String.class);
                if(value_temp != null)
                    workshopParticipants.add(new LeaderPlayers(value_temp));
                Collections.sort(workshopParticipants);
                //Log.d(TAG, "Value is: " + mHigh);
            }

            @Override
            public void onCancelled(DatabaseError error) {
                // Failed to read value
                //Log.w(TAG, "Failed to read value.", error.toException());
            }

        });
        user3 = database.getReference(Integer.toString(3));
        user3.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                // This method is called once with the initial value and again
                // whenever data at this location is updated.
                String value_temp = dataSnapshot.getValue(String.class);
                Log.d(TAG, value_temp);
                if(value_temp != null)
                    workshopParticipants.add(new LeaderPlayers(value_temp));
                Collections.sort(workshopParticipants);
                //Log.d(TAG, "Value is: " + mHigh);
                for(int a = 0; a < workshopParticipants.size(); a++)
                {
                    players.add(workshopParticipants.get(a).getFullName());
                }
                for(int a = 0; a < players.size(); a++){
                    Log.d(TAG, "Players are: " + players.get(a));
                }
            }

This is how I manually add the fake players. 
It currently works for the fake players, but if I have for example, N real players play my game, then I want all N of them to appear on the leaderboard as well.

A:

If I understand you correctly, you want to load all users without have to load each of them individually. You can do that by attaching your listener one level higher in the tree, and then looping over the child nodes:
database.getReference().addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for (DataSnapshot userSnapshot: dataSnapshot.getChildren()) {
            Log.d(TAG, userSnapshot.getKey()); // "1", "2"...
            Log.d(TAG, userSnapshot.getValue(String.class)); "Christine 20", "Tom 64"...
        }
    }

    @Override
    public void onCancelled(DatabaseError error) {
        Log.w(TAG, "Failed to read value.", error.toException()); // Don't ignore errors
    }

});

