ฐานข้อมูลการค้นหาอะแดปเตอร์ Firebase Recycler

ฉันกำลังพยายามดึงข้อมูลเฉพาะจากฐานข้อมูลเรียลไทม์ของ 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

ตัวจัดการโครงร่างกริด

น่าเสียดายที่มันคงพื้นที่สีขาวไว้ทุกที่ที่ไม่แนะนำแท็กผลิตภัณฑ์

ดังนั้นคำถามของฉันคือเราจะหลีกเลี่ยงช่องว่างนี้ได้อย่างไร หรือมีวิธีใดที่ฉันสามารถจัดเรียงฐานข้อมูลและส่งแบบสอบถามซ้ำซ้อนหรืออะไรก็ตาม


person 50_Seconds _Of_Coding    schedule 26.06.2020    source แหล่งที่มา


คำตอบ (1)


  1. เปลี่ยนlayout_width = wrap_content ของเลย์เอาต์รูทของคุณสำหรับรายการของคุณ ..
  2. ผ่านรายการอาร์เรย์ของคุณ

Collections.sort(itemsLists);

จากนั้นในคลาสโมเดลของคุณให้เพิ่มเมธอด comparisonTo... อ้างอิงที่นี่ :- https://howtodoinjava.com/sort/collections-sort/

person Sanjay Developer    schedule 26.06.2020