Извлечение данных из определенных узлов базы данных firebase - PullRequest
0 голосов
/ 02 сентября 2018

Я занимаюсь разработкой приложения для Android, и теперь я застрял в извлечении данных из определенных узлов, как будто я хочу получить только одно значение из каждого узла. Структура базы данных показана ниже.

Database Structure

Как я могу получить второй уникальный идентификатор, созданный базой данных Firebase?

Ответы [ 2 ]

0 голосов
/ 03 сентября 2018

Чтобы получить значение appointmentStuts только из первого объекта, используйте следующий код:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
Query query = rootRef.child("Appointments").child(PostKey).limitToFirst(1);
ValueEventListener valueEventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for(DataSnapshot ds : dataSnapshot.getChildren()) {
            String appointmentStuts = ds.child("appointmentStuts").getValue(String.class);
            Log.d(TAG, appointmentStuts);
        }
    }

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

Сначала создайте класс POJO, чтобы получить нужные значения, он должен быть записан так же, как у вас в Firebase.

public class AppointmentsPojo {

    private String appointmentStuts;

    public AppointmentsPojo(){

    }


    public String getAppointmentStuts() {
        return appointmentStuts;
    }

    public void setAppointmentStuts(String appointmentStuts) {
        this.appointmentStuts = appointmentStuts;
    }

}

Затем просто цикл внутри Appointments, чтобы получить каждый appointmentStuts

mDatabase.child("Appointments").addListenerForSingleValueEvent(new ValueEventListener() {
  @Override
  public void onDataChange(DataSnapshot dataSnapshot) {
    //Looping inside Appointments to get each appointmentsStuts
    for(DataSnapshot snapshot: dataSnapshot.getChildren()){
    AppointmentsPojo ap = snapshot.getValue(AppointmentsPojo.class);
    //Getting each appointmentStuts
     String appointmentStuts = ap.getAppointmentStuts();
     //To get each father of those appointments 
     String key = snapshot.getKey();

      Log.e("Data: " , "" + appointmentStuts );

       }

  }

  @Override
  public void onCancelled(DatabaseError databaseError) {
    System.out.println("The read failed: " + databaseError.getCode());
  }
});

Где mDatabase

DatabaseReference mDatabase;

mDatabase = FirebaseDatabase.getInstance().getReference();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...