Android 通过查询在Firebase数据库中搜索用户名和电子邮件
我试图解决我在Firebase遇到的这个问题。我想给用户一个搜索朋友的选项,这样他就可以开始输入朋友的名字或电子邮件了,它应该可以从firebase数据库中找到可能的结果。我已经实现了easy,只搜索姓名或电子邮件,但对于两者,如何解决?对我来说,多重查询听起来很混乱,不知怎么可能 要在用户中使用电子邮件搜索,请执行以下操作。工作正常,但无法搜索名称Android 通过查询在Firebase数据库中搜索用户名和电子邮件,android,firebase,firebase-realtime-database,Android,Firebase,Firebase Realtime Database,我试图解决我在Firebase遇到的这个问题。我想给用户一个搜索朋友的选项,这样他就可以开始输入朋友的名字或电子邮件了,它应该可以从firebase数据库中找到可能的结果。我已经实现了easy,只搜索姓名或电子邮件,但对于两者,如何解决?对我来说,多重查询听起来很混乱,不知怎么可能 要在用户中使用电子邮件搜索,请执行以下操作。工作正常,但无法搜索名称 Query queryEmail = FirebaseDatabase.getInstance().getReferenc
Query queryEmail = FirebaseDatabase.getInstance().getReference()
.child(LOCATION_USERS)
.orderByChild(PROPERTY_EMAIL)
.limitToFirst(10)
.startAt(text)
.endAt(text + "~");
下面是我的意思,有没有办法做到这一点
您必须使用多个查询。我建议你把你的结构改为
userUID
name
email
age
name_lowercase
email_lowercase
然后将您的查询ex:John转换为John,这样,用户是否将其输入大写并不重要。Firebase数据库查询只能对单个属性进行排序/筛选。不支持
或
。但您可能会添加额外的数据以允许使用该用例,例如一个简单的“搜索地图”,其中保存每个姓名和电子邮件的UID(作为值)。该结构的工作原理类似于我在这里的答案:。另请参见我对分类查询的回答: