Получить данные о текущем пользователе: Firebase - PullRequest
0 голосов
/ 24 июня 2019

В нашем приложении мы должны извлечь имена дневников под текущим пользователем и отобразить их в виде ListView.

Мы сослались на ряд вопросов, похожих на наш, но ни один из них не пригодился. Любая помощь будет оценена. Заранее спасибо!

В структуре Firebase, показанной на изображении:

  1. У пользователя может быть любое количество дневников (скажем, у пользователя на этом снимке 3 дневники, а именно Хайдарабад, Дубай и Торонто

  2. Под каждым дневником есть изображения вместе с опытом Пользователь.

  3. Цель состоит в том, чтобы получить только имена дневников рассматриваемого пользователя

Под каждым из этих дневников есть изображения (мы можем извлечь изображения в listview; отдельное изображение отображается во фрагменте)

Ожидаемый результат - Новый ListView, который должен быть заполнен именами дневников - Хайдарабад, Ченнай и Бангалор image

изображение

1 Ответ

0 голосов
/ 24 июня 2019

Согласно вашему последнему комментарию, чтобы получить все названия городов в ListView, используйте следующие строки кода:

String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference uidRef = rootRef.child("image").child(uid);
ValueEventListener valueEventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        List<String> cities = new ArrayList<>();
        for(DataSnapshot ds : dataSnapshot.getChildren()) {
            String cityName = ds.getKey();
            cities.add(cityName);
        }
        ListView listView = (ListView) findViewById(R.id.list_view);
        ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_list_item_1, cities);
        listView.setAdapter(arrayAdapter);
    }

    @Override
    public void onCancelled(@NonNull DatabaseError databaseError) {
        Log.d(TAG, databaseError.getMessage()); //Don't ignore errors!
    }
};
uidRef.addListenerForSingleValueEvent(valueEventListener);

Результат в вашем ListView будет:

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