Как получить детей дочерних узлов из Firebase в Android? - PullRequest
0 голосов
/ 08 мая 2018

my database:

class UserAccountSettings {
    private String user_id;
    private String name ;
    private float rate;
    private String profile_photo;
    private ArrayList<Activity> activities ;
} 

спасибо за вашу помощь!

Ответы [ 2 ]

0 голосов
/ 09 мая 2018

Для отображения этих значений, пожалуйста, используйте следующий код:

String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference activitiesRef = rootRef.child("user_account_settings").child(uid).child("activities");
ValueEventListener valueEventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        String user_id = dataSnapshot.child("user_id").getValue(String.class);
        String name = dataSnapshot.child("name").getValue(String.class);
        float rate = dataSnapshot.child("rate").getValue(Float.class);
        String profile_photo = dataSnapshot.child("profile_photo").getValue(String.class);
        Log.d("TAG", user_id + " / " +
            profile_photo + " / " +
            rate + " / " +
            profile_photo);
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {}
};
activitiesRef.addListenerForSingleValueEvent(valueEventListener);

Вывод будет:

mVeg... / Debbebi / 0 / http://...
0 голосов
/ 08 мая 2018
  1. объявить объект Data baseReference (отредактируйте строку «azone» в соответствии с вашим ключом узла):

    DatabaseReference userSettingRef = 
                    FirebaseDatabase.getInstance().getReference()
                            .child("azone")
                            .child("user_account_settings")
                            .child(getUserId());
    
  2. добавить ValueEventListener:

    userSettingRef.addValueEventListener(new ValueEventListener() {
                    @Override
                    public void onDataChange(DataSnapshot dataSnapshot) {
                        // Get Post object and use the values to update the UI
                        UserAccountSettings setting = dataSnapshot.getValue(UserAccountSettings .class);
                    if (setting!= null) {
                       // do something here
    
                    }
    
                }
    
                @Override
                public void onCancelled(DatabaseError databaseError) {
                    // Getting Post failed, log a recipientMessage
                    Log.w(TAG, "loadPost:onCancelled", databaseError.toException());
                    // ...
                }
            });
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...