【问题标题】:Searching for EditText value from Firebase从 Firebase 搜索 EditText 值
【发布时间】:2019-09-25 16:02:12
【问题描述】:

我之前发布了一个关于如何在 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

【问题讨论】:

    标签: android json firebase firebase-realtime-database


    【解决方案1】:

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

    您可能正在寻找:

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

    【讨论】:

    • 现在我收到一个新错误:(问题已相应更新)
    • 这是一个新错误,表明使用更新后的代码可以获得结果。您需要将每个子快照的值作为String 获取,您似乎在做其他事情。我不能说你到目前为止分享的内容是什么,所以我建议用重现这个新错误所需的最少代码+数据打开一个新问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-21
    • 2017-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多