У меня есть данные, которые состоят из уникального идентификатора, имени пользователя, электронной почты и т. Д. c, где только UID является уникальным и используется в качестве ключа, так как при поиске пользователю БД необходимо ввести UID.
Итак, если я вижу всю БД через приложение, он показывает имя пользователя дважды, так как есть разные UID. Вместо этого мне нужно, чтобы имя пользователя отображалось только один раз.
образец снимка экрана базы данных:
Firebase-root
|
--- Users
|
--- 9638527410
| |
--- userName: "John Doe"
| |
--- emailAddress: "John@Doe.com"
|
--- 9876543210
| |
--- userName: "John Doe"
| |
--- emailAddress: "John@Doe.com"
Теперь, когда я пытаюсь получить данные, приложение показывает Android Приложение Результат получения
Пример кода
private void fetch_items() {
try {
ListView listView_items = findViewById(R.id.c_listView);
Query query = databaseReference.orderByChild("username");
FirebaseListOptions<firebase_username> firebaseListOptions = new FirebaseListOptions.Builder<firebase_username>().setQuery(query,firebase_username.class). setLayout(android.R.layout.activity_list_item).setLifecycleOwner(this).build();
FirebaseListAdapter<firebase_username> firebaseListAdapter =
new FirebaseListAdapter<firebase_username>(firebaseListOptions) {
@Override
protected void populateView(@NonNull View v, @NonNull firebase_username model, int position) {
((TextView) v.findViewById(android.R.id.text1)).setText(model.get_username());
}
};
listView_items.setAdapter(firebaseListAdapter);
} catch (Exception e) {
Log.e("Error", e.toString());
}
}