我如何获取具有相同String key android firebase的所有项目

时间:2018-11-27 17:02:23

标签: android firebase

I want to get all the items which have same league id

我想在team节点中获取所有具有相同联赛ID的物品,并且在该节点中我具有按钮,然后有一个对象,可以使用Firebase查询,如果有人知道它,请帮忙。链接到图像-> https://i.stack.imgur.com/XzJo2.jpg
结果为> System.out:LOG DataSnapshot {键=组,值= null}

val query = databaseRef.child("teams").orderByChild("leagueId").equalTo("LS9t7MgdIuHrDP0vEME")
            query.addListenerForSingleValueEvent(object : ValueEventListener {
                override fun onDataChange(dataSnapshot: DataSnapshot) {
                    println("LOG $dataSnapshot")

                }

                override fun onCancelled(databaseError: DatabaseError) {

                }
            })

1 个答案:

答案 0 :(得分:1)

要获取teams节点中与特定ID对应的所有项目,请使用以下代码行:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
Query query = rootRef.child("teams").orderByChild("leagueId").equalsTo(desiredId);
ValueEventListener valueEventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for(DataSnapshot ds : dataSnapshot.getChildren()) {
            String team = ds.child("team").getValue(String.class);
            Log.d(TAG, team);
        }
    }

    @Override
    public void onCancelled(@NonNull DatabaseError databaseError) {
        Log.d(TAG, databaseError.getMessage()); //Don't ignore errors!
    }
};
query.addListenerForSingleValueEvent(valueEventListener);

其中desiredId的值应为-LS9t ... vEME。 logcat中的输出将是ID等于-LS9t ... vEME的所有团队的名称。