ฉันกำลังพยายามดึงข้อมูลเฉพาะจากฐานข้อมูลเรียลไทม์ของ firebase ฉันรู้ว่าการสืบค้นฐานข้อมูล firebase ที่ซับซ้อนนั้นเป็นไปไม่ได้
นี่คือสแน็ปช็อตฐานข้อมูลของฉัน สิ่งที่ฉันต้องการทำคือเรียงลำดับฐานข้อมูลของฉันด้วยการนับก่อน ดังนั้นฉันจึงใช้แบบสอบถาม .orderByChild(count) แล้วส่งต่อไปยังตัวเลือก Recycler ตกลงไม่เป็นไร แต่ตอนนี้สิ่งที่ฉันต้องการเพิ่มเติมคือควรแสดงข้อมูลหากคำแนะนำ = แนะนำเท่านั้น นั่นคือแบบสอบถามสองครั้ง
ฉันคิดว่าเราไม่สามารถใช้ double query ในฐานข้อมูลแบบเรียลไทม์ได้ ดังนั้นสิ่งที่ฉันทำคือ....
/*
condition =
recyclerView = Linearlayout manager
setQuery = orderbychild count
*/
//actual logic for hiding non required data
if (model.getRecommendation().equals("recommended")) {
holder.recommendationLayout.setVisibility(View.VISIBLE);
}
else {
holder.hideView.setVisibility(View.GONE);
holder.hideView.getLayoutParams().height = 0;
holder.hideView.getLayoutParams().width = 0;
ViewGroup.MarginLayoutParams layoutParams =
(ViewGroup.MarginLayoutParams) holder.hideView.getLayoutParams();
layoutParams.setMargins(0, 0, 0, 0);
holder.hideView.requestLayout();
}
แต่เมื่อฉันเปลี่ยนตัวจัดการเลย์เอาท์เป็น GridLayoutManager
น่าเสียดายที่มันคงพื้นที่สีขาวไว้ทุกที่ที่ไม่แนะนำแท็กผลิตภัณฑ์
ดังนั้นคำถามของฉันคือเราจะหลีกเลี่ยงช่องว่างนี้ได้อย่างไร หรือมีวิธีใดที่ฉันสามารถจัดเรียงฐานข้อมูลและส่งแบบสอบถามซ้ำซ้อนหรืออะไรก็ตาม