我在检索数据时遇到问题。 在下面的代码中,我将数据保存到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岁的用户
答案 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