从Firebase搜索EditText值

时间:2019-05-08 00:14:45

标签: android json firebase firebase-realtime-database

我之前发布了一个有关如何在firebase中搜索edittext的值的问题,并且意识到我如何设置数据库是错误的。现在,我的数据格式如下:

{
  "Aaron A" : {
    "allDj" : {
      "-Le5EpHND7KF--XOT7Lc" : "hahahaha",
      "-Le5EsTfNaQ9h3BVeZRw" : "hahahaha",
      "-Le5Fgurpir7bIN3agRb" : "yousucks",
      "-Le5IsCThArSKGRTPnN5" : "ffffggg"
    }
  },
  "allDeeJays" : {
    "-Le5FguoZsnT2lejgAkZ" : "yousucks",
    "-Le5IsCPK69NTbgbgUUo" : "ffffggg",
    "-Le5J5CmPkddSaK_MgpG" : "ahhhaahhaahha"
  }
}

我希望能够搜索“ allDeeJays”,这是我到目前为止的内容:

query = mProfileDatabase.orderByChild("allDeeJays")
                      .startAt(t.getText().toString()).endAt(t.getText().toString() + "\uf8ff");

我无法确定为什么这种方法不起作用,将不胜感激,感谢您的帮助和帮助。

编辑

将我的东西替换为:

        query = mProfileDatabase.child("allDeeJays")
                .orderByValue()
                .startAt(t.getText().toString()).endAt(t.getText().toString() + "\uf8ff");

我遇到新的错误,logcat没有指定它在哪行:

 com.google.firebase.database.DatabaseException: Can't convert object of type java.lang.String to type com.example.android.heydj.DjProfile

1 个答案:

答案 0 :(得分:0)

JSON中的allDeeJays节点没有字符串值,因此您的条件(如.startAt(t.getText().toString()))将不会返回任何内容。

您可能正在寻找:

query = mProfileDatabase.child("allDeeJays")
                  .orderByValue()
                  .startAt(t.getText().toString()).endAt(t.getText().toString() + "\uf8ff");