
我正在使用以下Firebase数据库表开发一个Android应用程序:
"posts": {"ID_1": { "author": "Google:111527135678918251124", "color": -2960686, "creationTime": 1427104145195, "text": "my text", "Title": "my Title", "type": 0, "visible": true},"ID_2": { "author": "Google:111527135678918251524", "color": -2960686, "creationTime": 1427104145195, "text": "my text", "Title": "my Title", "type": 2, "visible": true },"ID_3": { "author": "Google:111527135678918251124", "color": -2960686, "creationTime": 1427104145195, "text": "my text", "Title": "my Title", "type": 1, "visible": true }}我希望能够检索按子类别排序的帖子(例如按类型排序),并能够检索具有特定子值(类型= 1)的所有帖子.
阅读Firebase文档,似乎我必须编写以下代码,但没有得到所需的结果.
按类型订购
rootRef.child("posts").orderByChild("type") .addListenerForSingleValueEvent(new ValueEventListener() { @OverrIDe public voID onDataChange(DataSnapshot dataSnapshot) { result = (HashMap<String, Post>) dataSnapshot.getValue(); } @OverrIDe public voID onCancelled(FirebaseError firebaseError) { } });我得到:无序的帖子地图
类型=值
rootRef.child("posts").orderByChild("type").equalTo(1, "type").addListenerForSingleValueEvent(new ValueEventListener() { @OverrIDe public voID onDataChange(DataSnapshot dataSnapshot) { result = dataSnapshot.getValue(); result = result; } @OverrIDe public voID onCancelled(FirebaseError firebaseError) { } })我得到:null.
我的Datasnapshot对象的键=“ posts”,值= null
解决方法:
关于排序,我认为问题在于我正在将数据作为本身无序的HashMap检索.
如注释中所建议,第二种情况需要.equalTo(1)而不是.equalTo(“ type”,1),因为它以.orderBy()方法开头.
总结以上是内存溢出为你收集整理的android-Firebase orderByChild和equalTo()查询无法正常工作全部内容,希望文章能够帮你解决android-Firebase orderByChild和equalTo()查询无法正常工作所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)