Получить каждый элемент для каждого с Firebase - PullRequest
0 голосов
/ 05 октября 2018

Если у меня есть это, чтобы получить 3 значения:

myRef.child("users").orderByKey()
                    .limitToLast(3)
                    .addValueEventListener(new ValueEventListener() {
   @Override
   public void onDataChange(DataSnapshot dataSnapshot) {
    for (DataSnapshot snapshot: dataSnapshot.getChildren()) {
     Users us = snapshot.getValue(Users.class);
     if (firstvalue > second value) {
      //get third value 
     }
     Log.e("Datos: ", "" + us.getNumber());
    }
}

Как оно получает каждое значение из для каждого цикла внутри dataSnapshot, скажем:

us.getNumber().get(0);
us.getNumber().get(1);
us.getNumber().get(2);

Спасибо

Ответы [ 2 ]

0 голосов
/ 05 октября 2018

Как я вижу в вашем коде, вы используете вызов limit(3), который ограничит результаты в объекте DataSnapshot тремя.Таким образом, чтобы получить этих трех пользователей отдельно, добавьте их в list и используйте list.get(position);, например:

ValueEventListener valueEventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        List<Users> list = new ArrayList<>();
        for(DataSnapshot ds : dataSnapshot.getChildren()) {
            Users users = ds.getValue(Users.class);
            list.add(users);
        }

        Users firstUser = list.get(0);
        Users secondUser = list.get(1);
        Users thirdUser = list.get(2);
    }

    @Override
    public void onCancelled(@NonNull DatabaseError databaseError) {
        Log.d(TAG, databaseError.getMessage());
    }
};
myRef.addListenerForSingleValueEvent(valueEventListener);
0 голосов
/ 05 октября 2018

Вы можете использовать это, чтобы ограничить запись базы данных firebase.Где футбол является основным корнем, а затем он имеет следующие дочерние элементы, такие как «Счета» и «ранг».Либо вы можете сделать это следующим образом, либо вы можете использовать URL базы данных Firebase, а затем .json покажет все данные JSON в качестве ответа.

 DatabaseReference mDatabasePlayers = 
 FirebaseDatabase.getInstance().getReference().child("Football");
 Query mDatabaseHighestPlayer = 
 mDatabasePlayers.child("Scores").orderByChild("rank").limitToLast(3);
 mDatabaseHighestPlayer.addValueEventListener(new ValueEventListener() {
 @Override
    public void onDataChange(DataSnapshot dataSnapshot){
       for (DataSnapshot childSnapshot: dataSnapshot.getChildren()) {
          String Key = childSnapshot.getKey();
          Toast.makeText(main.this,Key,Toast.LENGTH_LONG).show();
       }
    }
@Override
    public void onCancelled(DatabaseError databaseError) {
      throw databaseError.toException(); // don't swallow errors
    }
 });

Это поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...