【问题标题】:Search Firebase Database for Username AND Email with a Query使用查询在 Firebase 数据库中搜索用户名和电子邮件
【发布时间】:2017-06-12 13:27:48
【问题描述】:

我尝试解决我在 Firebase 中遇到的这个问题。我想让用户可以选择搜索朋友,所以他开始输入朋友姓名或电子邮件,它应该从 firebase 数据库中找到可能的结果。我只搜索姓名或电子邮件就很容易实现了,但是对于两者,如何解决?多个查询对我来说听起来很乱,有可能吗?

要在用户中使用电子邮件进行搜索,我会这样做。完美运行,但无法搜索名称..

            Query queryEmail = FirebaseDatabase.getInstance().getReference()
                    .child(LOCATION_USERS)
                    .orderByChild(PROPERTY_EMAIL)
                    .limitToFirst(10)
                    .startAt(text)
                    .endAt(text + "~");

这就是我的意思,有没有办法做到这一点?

【问题讨论】:

  • Firebase 数据库查询只能对单个属性进行排序/过滤。不支持OR。但是您可能会添加其他数据以允许使用案例,例如简单的“搜索地图”,您可以在其中保留每个名称和电子邮件的 UID(作为值)。该结构的工作方式类似于我在此处的答案:stackoverflow.com/questions/27207059/…。另请参阅我对分类查询的回答:stackoverflow.com/questions/40656589/…

标签: android firebase firebase-realtime-database


【解决方案1】:

您必须使用多个查询。我建议您将结构更改为

userUID
  name
  email
  age
  name_lowercase
  email_lowercase

然后将您的查询 ex: John 转换为 john,这样用户是否将他的输入大写都没关系。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-02-13
    • 1970-01-01
    • 1970-01-01
    • 2016-11-25
    • 2019-03-23
    • 2015-05-18
    • 2017-12-15
    • 1970-01-01
    相关资源
    最近更新 更多