用于查找订阅者的Firebase查询无法正常工作

时间:2016-12-27 19:30:20

标签: android firebase firebase-realtime-database

这就是我的Firebase数据库的样子。

subscriber

u36eD7PsOaf6uo0CGuGPBjC3Y223
   children: false
   empty: false
   id:"u36eD7PsOaf6uo0CGuGPBjC3Y223"
   name: "JACKSON"
   smoker:false

我想找到与id = u36eD7PsOaf6uo0CGuGPBjC3Y223匹配的记录。

以下是我的代码,无法检索记录

Query recentPostsQuery = mRef.orderByChild("id").equalTo("u36eD7PsOaf6uo0CGuGPBjC3Y223");
        recentPostsQuery.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                Log.e("Count ", "" + dataSnapshot.getChildrenCount());
                for (DataSnapshot postSnapshot : dataSnapshot.getChildren()) {
                    subscriber = postSnapshot.getValue(Subscriber.class);
                }
            }

            @Override
            public void onCancelled(FirebaseError firebaseError) {

            }
        });

Log.e count语句返回1条记录是正确的,但看起来我的查询错误,这就是我无法获取记录的原因。

1 个答案:

答案 0 :(得分:0)

您的查询必须返回String值,而不是Subscriber的对象,Subscriber的完整对象存在于节点 - u36eD7PsOaf6uo0CGuGPBjC3Y223

// With return String value which is u36eD7PsOaf6uo0CGuGPBjC3Y223
mRef.orderByChild("id").equalTo("u36eD7PsOaf6uo0CGuGPBjC3Y223");