Tengo una base de datos en tiempo real base de fuego y desea utilizar los datos para hacer una tabla de clasificación. Im tratando de recuperar todos los datos en mi nodo de puntuaciones, pero no estoy seguro de cómo recorrer para obtener las puntuaciones de todos los usuarios.
La estructura de base de datos es la siguiente:
El código que he tratado de utilizar es la siguiente:
package com.example.securityapp;
import androidx.appcompat.app.AppCompatActivity;
import android.nfc.Tag;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.Query;
import com.google.firebase.database.ValueEventListener;
import static java.lang.System.in;
public class leaderboard extends AppCompatActivity {
DatabaseReference databaseUsers;
FirebaseDatabase database = FirebaseDatabase.getInstance();
FirebaseAuth mAuth;
TextView score;
private static final String TAG = leaderboard;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_leaderboard);
databaseUsers = database.getReference().child(Scores);
mAuth = FirebaseAuth.getInstance();
FirebaseUser user = mAuth.getCurrentUser();
score = (TextView) findViewById(R.id.leaderboard_score);
databaseUsers.child(Scores).addValueEventListener(new ValueEventListener() {
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot snapshot : dataSnapshot.getChildren()) {
System.out.println(The scores are + dataSnapshot.child(Points).getValue().toString());
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
// Getting Post failed, log a message
Log.w(TAG, loadPost:onCancelled, databaseError.toException());
}
});
}
}