Firebase查询equalTo()或startAt()。endAt()停止工作

时间:2019-12-16 22:24:50

标签: firebase kotlin firebase-realtime-database

我已经尝试了其他帖子中的建议,但没有成功。 我刚遇到一个问题,我得到了以下代码,当用户单击特定日期时,该代码将显示Firebase数据库中的数据。如果我将(startAt(),endAt())注释掉,则当我将回收站中的所有数据填充时添加equalTo()或startAt()。endAt())回收者不会被填充。 之前的代码正常工作,只是最近才停止工作,我不知道为什么。 代码如下: 波纹管是适配器:

fun calendarAdapt(options:FirebaseRecyclerOptions<ModelCalendar>,dataref:  
 DatabaseReference,context: Context):FirebaseRecyclerAdapter<ModelCalendar,CalendHold>{
    return object :FirebaseRecyclerAdapter<ModelCalendar,CalendHold>(options){
        override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): CalendHold {
            return   
 CalendHold(LayoutInflater.from(parent.context).inflate(R.layout.list_row_calendar,parent,false))
        }
        override fun onBindViewHolder(holder: CalendHold, positionc: Int, modelc: ModelCalendar) 
{

            val postkeyC= getRef(positionc).key
            dataref.child(postkeyC!!).addValueEventListener(object:ValueEventListener{
                override fun onDataChange(dataSnapshot: DataSnapshot) {
                    holder.bindlogC(modelc)
                 }
                override fun onCancelled(p0: DatabaseError) {
                }
            })
        }
    }
}

这是查询:

 fun query2(cont: LifecycleOwner,selected_date:String):FirebaseRecyclerOptions<ModelCalendar>{
    val queryy = FirebaseDatabase.getInstance()
        .reference
        .child("Ev")
        .startAt(selected_date)
         .endAt(selected_date)

    return FirebaseRecyclerOptions.Builder<ModelCalendar>()
        .setQuery(queryy,ModelCalendar::class.java)
        .setLifecycleOwner(cont)
        .build()
 }

在这里应用适配器:

  mDb = FirebaseDatabase.getInstance().reference.child("Ev")
val c = Calendar.getInstance()
    val year2 = c.get(Calendar.YEAR)
    val month2 = c.get(Calendar.MONTH)
    val day2 = c.get(Calendar.DAY_OF_MONTH)
    val dayd= checkDigit(day2)
    val monthd= checkDigit(month2+1)
    val datetoday = java.lang.StringBuilder()
        .append(dayd)
        .append("-")
        .append(monthd)
        .append("-")
        .append(year2)
    calendinf(datetoday.toString())
    calendarid.setOnDateChangeListener { view, year, month, dayOfMonth ->
        val month = checkDigit(month+1)
        val day = checkDigit(dayOfMonth)
        val datesel =StringBuilder()
            .append(day)
            .append("-")
            .append(month)
            .append("-")
            .append(year)
        calendinf(datesel.toString())
         }
}
    private fun calendinf(selected_date:String){
    val options = Queryess().query2(this,selected_date)
    val adaptorC = Adaptall().calendarAdapt(options, mDb,this)
    calerec!!.adapter=adaptorC!!
}

1 个答案:

答案 0 :(得分:0)

我修复它,这是查询,缺少“ orderBychild()”字段,很可能是我误删除了,否则无法解释它:))