我已经尝试了其他帖子的建议,但没有成功。我只是遇到了一个问题,我得到了以下代码,当用户单击特定日期时显示来自Firebase数据库的数据。如果我注释掉(start At(), endAt()),回收器将填充所有数据,当我添加equalTo()或start At(). 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!!
}
我修复它,这是查询,缺少“orderBychild()”字段,很可能我错误地删除了,否则无法解释它:))
版本信息 角度:1.5.8火基:3.2.1角度:2.0.1 测试用例 预期行为 创建具有指定起点的查询。 实际行为
我有一个firebase查询,如下所示: 我查询的区域结构如下所示 基于在这里找到的按键排序功能,它首先尝试将键排序为数字,然后按字典顺序排序。正如您在图像中看到的,我的键是字符串。 当和查询不太起作用,因为它返回这个。从我的理解来看,它不应该返回对象的第一个属性,但当我设置和时,它返回: 对我来说,这似乎不正确,因为它应该不返回任何内容,因为从“0795”开始到“0810”结束的字符串之间不存在
使用AngularFire 8.0 Bellow是使用startAt和endAt限制firebase数据的代码。 返回的数据应该是来自firebase的单个元素,但在使用console时queryArray为空。调试日志。 没有使用startAt和endAt,queryArray包含存储在firebase中的所有元素。因此,记录queryArray$keyAt(0)将第一个元素的名称作为输出。正如
我有一个使用Firebase SimpleLogin的应用程序,但由于我有额外的用户数据,我将其存储在[my-fire base]下。firebaseio.com/users/[用户名]。下面的片段显示了它是如何完成的 由于每个单独用户的数据都是基于用户名我通过uid优先排序的,因此我可以稍后通过uid获取其他用户数据。 当firebase登录事件触发时,我有以下处理程序,负责查询firebase
我读了Dan McGrath对这个问题的回答,他说在Firestore中有以下代码行的等价物: 这一行在Firebase Realtime database中工作得很好,但我试图在云Firestore中找到等效的几天。有人能帮我吗? 提前感谢!
问题内容: 这段代码工作正常。 我想要的唯一改进是 -当我传递“ Pi”时,它将获取所有以“ Pi”名称开头的项目对象,但是当我输入“ pi”时,它什么也不返回! 这意味着我希望此方法不区分大小写。因此,在那种情况下,“ Pi”或“ pi”等任何东西(小写或大写)都可以使用。 问题答案: Firebase当前不支持小写搜索。处理此问题的最佳方法是将小写字符串与原始字符串一起存储,然后查询小写字符串