如何从firebase搜索数据

时间:2017-05-02 05:21:43

标签: android firebase firebase-realtime-database

我在检索数据时遇到问题。 在下面的代码中,我将数据保存到db:

final FirebaseDatabase database = FirebaseDatabase.getInstance();
private DatabaseReference databaseReference = database.getReference(FirebaseInstanceId.getInstance().getToken());

databaseReference.child("age").setValue(sbAge.getProgress());
    databaseReference.child("status").setValue(spStatus.getSelectedItem().toString());

if(rbFemaleMe.isChecked())
{
    databaseReference.child("sex").setValue("Female");
}
else if(rbMaleMe.isChecked())
{
    databaseReference.child("sex").setValue("Male");
}

这是我的数据库: db

如何让所有年龄= 27岁的用户

2 个答案:

答案 0 :(得分:0)

您可能必须使用自定义模型来获取所需数据。

databaseReference.orderByChild("age").equalTo(27).addListenerForSingleValueEvent(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        result = dataSnapshot.getValue();

    }

    @Override
    public void onCancelled(FirebaseError firebaseError) {

    }
});

试试这个,希望这有帮助

答案 1 :(得分:0)

equalTo()方法允许我们根据完全匹配进行过滤。与其他范围查询的情况一样,它将为每个匹配的子节点触发。例如,我们可以使用以下查询来查找年龄为27岁的所有用户:

databaseReference.orderByChild("age").equalTo(27).addChildEventListener(new ChildEventListener() {
    @Override
    public void onChildAdded(DataSnapshot dataSnapshot, String prevChildKey) {
        System.out.println(dataSnapshot.getKey());
    }

    // ...
});

它的工作正常,希望它会有所帮助.. 有关更多信息,请转到here