В настоящее время я извлекаю только максимальный размер элементов -1 из Cloud Firestore, что означает, что если есть 3 элемента, он будет извлекать только 2. Могу ли я узнать, что я делаю неправильно для извлечения элементов из collection (). Document (). коллекция()?
Это мой фрагмент главы, который содержит RecyclerView в xml
public class ChapterFragment extends Fragment {
FirebaseFirestore db;
private RecyclerView recyclerView;
private View view;
private Query mQuery;
private FirestoreRecyclerAdapter adapter;
private String documentId;
public ChapterFragment() {
}
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
db = FirebaseFirestore.getInstance();
view = inflater.inflate(R.layout.fragment_chapter, container, false);
recyclerView = view.findViewById(R.id.chapter);
//Query
mQuery = db.collection("Book").document("1").collection("1").orderBy("Volume", Query.Direction.DESCENDING);
//Options
FirestoreRecyclerOptions<ChapterDetails> options = new FirestoreRecyclerOptions.Builder<ChapterDetails>()
.setQuery(mQuery,ChapterDetails.class)
.setLifecycleOwner(this)
.build();
//ViewHolder
adapter = new FirestoreRecyclerAdapter<ChapterDetails, ChapterDetailsViewHolder>(options) {
@NonNull
@Override
public ChapterDetailsViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view2 = LayoutInflater.from(parent.getContext()).inflate(R.layout.chapter_list, parent , false);
return new ChapterDetailsViewHolder(view2);
}
@Override
protected void onBindViewHolder(@NonNull ChapterDetailsViewHolder holder, int position, @NonNull ChapterDetails model) {
holder.volume.setText("volume " + model.getVolume());
holder.PDF.setText(model.getPDF());
}
};
recyclerView.setHasFixedSize(true);
recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
recyclerView.setAdapter(adapter);
return view;
}
private class ChapterDetailsViewHolder extends RecyclerView.ViewHolder{
private TextView volume;
private TextView PDF;
public ChapterDetailsViewHolder(@NonNull View itemView) {
super(itemView);
volume = itemView.findViewById(R.id.volume_number);
PDF = itemView.findViewById(R.id.pdf_text);
}
}
}
Это изображение моего хранилища огня:
Это моя ChapterDetails
public class ChapterDetails {
private String Volume,PDF;
public ChapterDetails(){
//empty
}
public ChapterDetails(String volume, String pdf) {
Volume = volume;
PDF = pdf;
}
public String getVolume() {
return Volume;
}
public void setVolume(String volume) {
Volume = volume;
}
public String getPDF() {
return PDF;
}
public void setPDF(String PDF) {
this.PDF = PDF;
}
}
Вот как это выглядит в android эмуляторе
EDIT 28/5/2020:
D/error: get failed with
com.google.firebase.firestore.FirebaseFirestoreException: Failed to get document from cache. (However, this document may exist on the server. Run again without setting source to CACHE to attempt to retrieve the document from the server.)
at com.google.firebase.firestore.core.FirestoreClient.lambda$getDocumentFromLocalCache$9(com.google.firebase:firebase-firestore@@21.4.3:197)
at com.google.firebase.firestore.core.FirestoreClient$$Lambda$9.then(Unknown Source:0)
at com.google.android.gms.tasks.zzd.run(Unknown Source:5)
at android.os.Handler.handleCallback(Handler.java:790)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6494)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
I/TAG: Current value of i = 1
I/TAG: Current value of i = 2
I/TAG: Current value of i = 3
I/TAG: Current value of i = 4
I/TAG: Current value of i = 5
I/TAG: Current value of i = 6
очевидно firestore говорит, что я создал исходный КЭШ? чего я не делал