Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/180.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 通过查询在Firebase数据库中搜索用户名和电子邮件_Android_Firebase_Firebase Realtime Database - Fatal编程技术网

Android 通过查询在Firebase数据库中搜索用户名和电子邮件

Android 通过查询在Firebase数据库中搜索用户名和电子邮件,android,firebase,firebase-realtime-database,Android,Firebase,Firebase Realtime Database,我试图解决我在Firebase遇到的这个问题。我想给用户一个搜索朋友的选项,这样他就可以开始输入朋友的名字或电子邮件了,它应该可以从firebase数据库中找到可能的结果。我已经实现了easy,只搜索姓名或电子邮件,但对于两者,如何解决?对我来说,多重查询听起来很混乱,不知怎么可能 要在用户中使用电子邮件搜索,请执行以下操作。工作正常,但无法搜索名称 Query queryEmail = FirebaseDatabase.getInstance().getReferenc

我试图解决我在Firebase遇到的这个问题。我想给用户一个搜索朋友的选项,这样他就可以开始输入朋友的名字或电子邮件了,它应该可以从firebase数据库中找到可能的结果。我已经实现了easy,只搜索姓名或电子邮件,但对于两者,如何解决?对我来说,多重查询听起来很混乱,不知怎么可能

要在用户中使用电子邮件搜索,请执行以下操作。工作正常,但无法搜索名称

            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(作为值)。该结构的工作原理类似于我在这里的答案:。另请参见我对分类查询的回答: