Как получить данные для конкретного ребенка в базе данных Firebase - Android Studio / Java? - PullRequest
0 голосов
/ 03 ноября 2018

Я хочу получить данные для конкретного ребенка, как я могу написать код? Я очень стараюсь, но это не сработало: "([как в моей базе данных здесь, как получить задания для конкретного ребенка, такого как Лубна, и получить все, что это ребенок?

Ответы [ 2 ]

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

Чтобы решить эту проблему, используйте следующие строки кода:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference lubnaRef = rootRef.child("tasks").child("Lubna");
ValueEventListener valueEventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for(DataSnapshot ds : dataSnapshot.getChildren()) {
            String title = ds.child("title").getValue(String.class);
            Log.d(TAG, title);
        }
    }

    @Override
    public void onCancelled(@NonNull DatabaseError databaseError) {
        Log.d(TAG, databaseError.getMessage());
    }
};
lubnaRef.addListenerForSingleValueEvent(valueEventListener);

Таким же образом вы получите title, вы также можете получить другие значения. Вывод в вашем logcat будет:

Homework
//and so on
0 голосов
/ 03 ноября 2018

Инициализация переменных класса:

private DatabaseReference mDatabase;
mDatabase = FirebaseDatabase.getInstance().getReference();
private DatabaseReference  lubnaRef = mDatabase.child("tasks/Lubna");

И затем для целей тестирования, я предполагаю, что вы вызываете это в своем onCreate методе своей деятельности, вы добавили бы следующее, предполагая, что у вас нет модели данных для этого:

lubnaRef.addListenerForSingleValueEvent(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        //These are all of your children.
        Map<String, Object> lubna = (Map<String, Object>) dataSnapshot.getValue();


        for (String childKey: lubna.keySet()) {
            //childKey is your "-LQka.. and so on"
            //Your current object holds all the variables in your picture.
            Map<String, Object> currentLubnaObject = (Map<String, Object>) lubna.get(childKey);

            //You can access each variable like so: String variableName = (String) currentLubnaObject.get("INSERT_VARIABLE_HERE"); //data, description, taskid, time, title
        }
   }

   @Override
   public void onCancelled(DatabaseError databaseError) {

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