Я пытаюсь создать базу данных в реальном времени с помощью firebase, и моя информация не хранится так, как она должна быть.Данные JSON форматируются следующим образом:
Как избавиться от нескольких экземпляров djProfile?И что означает эта случайная строка букв и цифр в этом иерархическом дереве?
Вот мои классы андроида, которые я использую, чтобы попытаться получить эту информацию и сохранить ее в моем представлении переработчика базы данных:
Класс DjProfile:
public class DjProfile
{
String djName, uniqueID;
public DjProfile(){}
public DjProfile(String djName, String uniqueID)
{
this.djName = djName;
this.uniqueID = uniqueID;
}
public String getDjName() { return djName; }
public String getUniqueID() {return uniqueID; }
}
Информация RecyclerView:
RecyclerView recyclerView = findViewById (R.id.dj_result_recycler);recyclerView.setLayoutManager (новый LinearLayoutManager (this));
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
Query query = rootRef.child("djProfile");
FirebaseRecyclerOptions<DjProfile> firebaseRecyclerOptions = new FirebaseRecyclerOptions.Builder<DjProfile>()
.setQuery(query, DjProfile.class)
.build();
firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<DjProfile, ResultsViewHolder>(firebaseRecyclerOptions)
{
@NonNull
@Override
public ResultsViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.searchitem_list, viewGroup, false);
return new ResultsViewHolder(view);
}
@Override
protected void onBindViewHolder(@NonNull ResultsViewHolder holder, int position, @NonNull DjProfile model) {
holder.setDjProfile(model);
}
};
recyclerView.setAdapter(firebaseRecyclerAdapter);
}
@Override
protected void onStart()
{
super.onStart();
firebaseRecyclerAdapter.startListening();
}
@Override
protected void onStop()
{
super.onStop();
if(firebaseRecyclerAdapter != null)
{
firebaseRecyclerAdapter.stopListening();
}
}
public static class ResultsViewHolder extends RecyclerView.ViewHolder
{
private TextView djNameView;
public ResultsViewHolder(View itemView)
{
super(itemView);
djNameView = itemView.findViewById(R.id.result_dj);
}
void setDjProfile(DjProfile profile)
{
String djName = profile.getDjName();
djNameView.setText(djName);
}
}
Как я могу получить только имя внутри этого djProfile?Что мне не хватает?
Любая обратная связь с благодарностью!