我之前发布了一个有关如何在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
答案 0 :(得分:0)
JSON中的allDeeJays
节点没有字符串值,因此您的条件(如.startAt(t.getText().toString())
)将不会返回任何内容。
您可能正在寻找:
query = mProfileDatabase.child("allDeeJays")
.orderByValue()
.startAt(t.getText().toString()).endAt(t.getText().toString() + "\uf8ff");