Я пытаюсь отобразить данные Firestore в моем приложении.
Я следовал учебнику на YouTube: https://www.youtube.com/watch?v=lAGI6jGS4vs&list=PLrnPJCHvNZuAXdWxOzsN5rgG2M4uJ8bH1&index=3
В этом уроке приложение тьютора показывало полные документы в порядке убывания приоритета. Я создал коллекцию с двумя документами, похожими по структуре на Firestore преподавателя. Однако мое приложение показывает только документ с последним «приоритетом», другой документ не отображается.
root
|
|------Beatles1(collection)
| |---title : "Abbey Road"
|--------Abbey Road---|---priority : 1969
| |---description : "Crossing street"
|
| |---title : "The Beatles"
|--------The Beatles---|---priority : 1970
|---description : "White album"
А вот и мой код.
OrderActicvity.java
public class OrderActivity extends AppCompatActivity {
private CollectionReference orderRef = db.collection("Beatles1");
private NoteAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_order);
setUpRecyclerView();
}
private void setUpRecyclerView() {
Query query = orderRef.orderBy("priority", Query.Direction.DESCENDING);
FirestoreRecyclerOptions<Note> options = new FirestoreRecyclerOptions.Builder<Note>()
.setQuery(query, Note.class)
.build();
adapter = new NoteAdapter(options);
RecyclerView recyclerView = findViewById(R.id.recycler_view);
recyclerView.setHasFixedSize(true);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
recyclerView.setAdapter(adapter);
}
@Override
protected void onStart() {
super.onStart();
adapter.startListening();
}
@Override
protected void onStop() {
super.onStop();
adapter.stopListening();
}
}
Note.java
public class Note {
private String title;
private String description;
private int priority;
public Note() {
}
public Note(String title, String description, int priority) {
this.title = title;
this.description = description;
this.priority = priority;
}
public String getTitle() {
return title;
}
public String getDescription() {
return description;
}
public int getPriority() {
return priority;
}
}
NoteAdapter.java
public class NoteAdapter extends FirestoreRecyclerAdapter<Note, NoteAdapter.NoteHolder> {
public NoteAdapter(@NonNull FirestoreRecyclerOptions<Note> options) {
super(options);
}
@Override
protected void onBindViewHolder(@NonNull NoteHolder holder, int position, @NonNull Note model) {
holder.textViewTitle.setText(model.getTitle());
holder.textViewDescription.setText(model.getDescription());
holder.textViewPriority.setText(String.valueOf(model.getPriority()));
}
@NonNull
@Override
public NoteHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View v = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.note_item,
viewGroup, false);
return new NoteHolder(v);
}
class NoteHolder extends RecyclerView.ViewHolder {
TextView textViewTitle;
TextView textViewDescription;
TextView textViewPriority;
public NoteHolder(@NonNull View itemView) {
super(itemView);
textViewTitle = itemView.findViewById(R.id.text_view_title);
textViewDescription = itemView.findViewById(R.id.text_view_description);
textViewPriority = itemView.findViewById(R.id.text_view_priority);
}
}
}
Мое приложение показывает только "The Beatles", а не "Abbey Road". Я не могу найти никакой разницы в коде преподавателя и моем. Что не так с моим кодом?