在Firebase中使用equalTo(“value”,“key”)?
以下是以下数据结构:
{ "list" : { "-K4YlfoWHZqPyWONv68Y" : { ".priority" : -1.449077948445E12, "date" : 1449077948445, "id" : "0", "name" : "Name_0" }, "-K4YlfoWHZqPyWONv68Z" : { ".priority" : -1.449077948445E12, "date" : 1449077948445, "id" : "1", "name" : "Name_1" }, "-K4YlfoWHZqPyWONv68_" : { ".priority" : -1.449077948445E12, "date" : 1449077948445, "id" : "0", "name" : "Name_2" }, "-K4YlfoWHZqPyWONv68a" : { ".priority" : -1.449077948445E12, "date" : 1449077948445, "id" : "1", "name" : "Name_3" }, ... }
我只需要获取id为“0”的项目;
以下是有效的:
final Firebase ref = new Firebase("https://millezim-test.firebaseio.com/").child("list"); ref.orderByChild("id").equalTo("1").addValueEventListener(new ValueEventListener() { @Override public void onDataChange(DataSnapshot dataSnapshot) { for (DataSnapshot d : dataSnapshot.getChildren()) { Model m = d.getValue(Model.class); } } @Override public void onCancelled(FirebaseError firebaseError) { } });
但不是这个,为什么?
ref.equalTo("1","id").addValueEventListener(new ValueEventListener() { @Override public void onDataChange(DataSnapshot dataSnapshot) { for (DataSnapshot d : dataSnapshot.getChildren()) { Model m = d.getValue(Model.class); } } @Override public void onCancelled(FirebaseError firebaseError) { } });
我是否误解了equalTo(“value”,“key”)是否在没有重新排序的情况下使用?
equalTo的Firebase文档说明了(可选) key
参数:
具有先前指定优先级的子项中的子键。 只有按优先级排序时才允许使用此参数。
由于您没有按优先级排序,因此您需要通过显式调用orderByChild()
来指定子项。
- recyclerview没有显示来自firebase的数据
- Android – Firebase – 不同类型的用户登录
- Firebase列表适配器构造函数错误
- 如何从android中的firebase数据库中获取随机对象?
- Firestore:允许拒绝权限的事务
- 为什么我不能使用populateViewHolder覆盖方法?
- 重复条目:com / google / android / gms / auth / api / signin / internal / zzf.class
- Firebase Admin Java SDK没有执行任何操作
- 如何将Firebase RecyclerView放在另一个RecyclerView中