Firebase查询关键字数组

时间:2016-07-11 12:24:56

标签: android firebase firebase-realtime-database

That's my Firebase Structure

我的代码

FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference myRef = database.getReference("stock");
Query i = myRef.orderByChild("keywords").equalTo("Hammer");
i.addValueEventListener(new ValueEventListener(){
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        System.out.println(dataSnapshot.getValue());    
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {

    }
});

我的问题:我想用关键字查询一个项目,例如。 " Hammer",但我只是将null作为值。如果我查询" orderByChild("关键字")。equalTo(" Hammer")"我得到了相同的空值。请帮帮我。

1 个答案:

答案 0 :(得分:1)

orderByChild只会查看您在/stocks中引用的分支的下一级子项。只有在孩子keywords/0/keyword右下方/stocks时,您的代码才有效。由于它在/stocks/inserate/0之下它不会起作用。

Query i = myRef.child("inserate/0/keywords").orderByChild("keyword").equalTo("Hammer");

这可以解决问题,但可能不是你想要的。如果你想搜索所有iserates个孩子,你应该对你的数据库进行一些重构。