Как вывести список имен зарегистрированных пользователей в Android (Firebase)?
Я новичок в Android и только что научился создавать профиль пользователей, таких как Facebook или Instagram, в настоящее время я зарегистрировал четырех пользователей с электронной почтой / паролем и в базе данных храню там электронную почту, имя, телефон. В другом упражнении я пытаюсь получить только имена зарегистрированных пользователей, таких как "Люди, которых вы знаете" в Facebook, но ничего не отображается.
private void showData(DataSnapshot dataSnapshot) {
for (DataSnapshot ds: dataSnapshot.getChildren()) {
UserInformation userInformation = new UserInformation();
userInformation.setName(ds.child("users").child("name").getValue(UserInformation.class).getName());
ArrayList<String> array = new ArrayList<>();
array.add(userInformation.getName());
ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, array);
mListView.setAdapter(adapter);
}
это правильный способ получения, потому что я получаю исключение NullPointerException, UserInformation является классом модели, содержащим методы получения и установки.
fire-18b42
users
KWE45gijkfJDK6782IBkjas(UID)
email: "@example.com"
name: "Example"
phone_num: 10000000
Вот как я сохранил данные в базе данных после регистрации пользователя, теперь у меня четыре пользователя, и я хочу извлечь каждое имя в отдельном listView.
2 ответа
Для отображения этих имен, пожалуйста, используйте этот код:
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference usersdRef = rootRef.child("users");
ValueEventListener eventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot ds : dataSnapshot.getChildren()) {
String name = ds.child("name").getValue(String.class);
Log.d("TAG", name);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {}
};
usersdRef.addListenerForSingleValueEvent(eventListener);
И вывод будет в этом случае все ваши имена пользователей.
Firebase это NoSql. Вам нужно получить всех пользователей из myRef.child("users")
и применить итератор, чтобы получить имена всех пользователей.