在您不了解父密钥时查询子值

时间:2017-08-01 11:41:03

标签: android firebase firebase-realtime-database firebaseui

我正在尝试查询子节点值,但我不知道父键,我想查询Firebase适配器。我想访问区域下的userid节点,但我不知道父节点的ID,即-KqPJMsjSb5CbPcq4nXv 这是Record的快照: The area node have different Areas under a auto generated Id's

1 个答案:

答案 0 :(得分:2)

请使用此代码:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference userIdRef = rootRef.child("areas").child(userId);
ValueEventListener eventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for(DataSnapshot ds : dataSnapshot.getChildren()) {
            String areaId = ds.child("areaId").getValue(String.class);
            Boolean booked = ds.child("booked").getValue(Boolean.class);
            Integer bookingHour = ds.child("bookingHour").getValue(Integer.class);
            //and so on
            Log.d("TAG", areaId + " / " + booked + " / " + bookingHour);
        }
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {}
};
userIdRef.addListenerForSingleValueEvent(eventListener);

其中userId是表示不缺少的用户的ID。

对Firebase数据库执行查询时,可能会有多个结果。 因此快照包含这些结果的列表。即使只有一个结果,快照也会包含一个结果的列表。