Android 如何检索嵌套firebase数据库中的所有数据

Android 如何检索嵌套firebase数据库中的所有数据,android,firebase,firebase-realtime-database,Android,Firebase,Firebase Realtime Database,在代码示例中,Bookings下面的键节点是userid(2个用户),后跟一个random push()键。我想检索嵌套在这两个userid中的数据 上述参考仅适用于当前登录的用户 请使用此代码: databaseReference = FirebaseDatabase.getInstance().getReference().child("Bookings"); ValueEventListener eventListener = new ValueEventListener() {

在代码示例中,Bookings下面的键节点是userid(2个用户),后跟一个random push()键。我想检索嵌套在这两个userid中的数据

上述参考仅适用于当前登录的用户

请使用此代码:

databaseReference = FirebaseDatabase.getInstance().getReference().child("Bookings");
ValueEventListener eventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        String userId = dataSnapshot.getKey();

        DatabaseReference keyRef = FirebaseDatabase.getInstance().getReference().child("Bookings").child(userId);
        ValueEventListener valueEventListener = new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                for(DataSnapshot ds : dataSnapshot.getChildren()) {
                    String Client_name = ds.child("Client_name").getValue(String.class);
                    String Data = ds.child("Data").getValue(String.class);
                    //and so on
                }
            }

            @Override
            public void onCancelled(DatabaseError databaseError) {}
        };
        keyRef.addListenerForSingleValueEvent(valueEventListener);
    }

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

希望能有所帮助。

此处引用我的答案可能对您有所帮助:上面的示例应该可以正常工作(userId不带引号),但我的问题只是引用。我正在通过getter类将数据检索到recycler视图中。我刚刚删除了引号。谢谢你的观察。因为我没有看到您的类模型或一些代码,所以我建议您以这种方式解决这个问题,这也是更简单的方法。希望你能找到答案,随时通知我。
databaseReference = FirebaseDatabase.getInstance().getReference().child("Bookings");
ValueEventListener eventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        String userId = dataSnapshot.getKey();

        DatabaseReference keyRef = FirebaseDatabase.getInstance().getReference().child("Bookings").child(userId);
        ValueEventListener valueEventListener = new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                for(DataSnapshot ds : dataSnapshot.getChildren()) {
                    String Client_name = ds.child("Client_name").getValue(String.class);
                    String Data = ds.child("Data").getValue(String.class);
                    //and so on
                }
            }

            @Override
            public void onCancelled(DatabaseError databaseError) {}
        };
        keyRef.addListenerForSingleValueEvent(valueEventListener);
    }

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