因此,我尝试获取直接的父键,这些父键实际上是“用户”数据库下的子级。

像这样,强调的是-

java - 如何在Firebase中获取直接父键-LMLPHP

我的代码如下:

    databaseReference.addChildEventListener(new ChildEventListener() {
        @Override
        public void onChildAdded(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
            for( DataSnapshot postSnapshot : dataSnapshot.getChildren()) {
                String  user = postSnapshot.getKey();
                list.add(user);

            }

        }


但是它所做的只是返回下面的图像-

java - 如何在Firebase中获取直接父键-LMLPHP

最佳答案

首先,您的数据库引用必须是这样的:

DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReference().child("users");


这是您读取数据的方式:

ValueEventListener listener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {

    for(DataSnapshot ds: dataSnapshot.getChildren()){
      String  user = ds.getKey();
      list.add(user);

    }
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {
        //log error
        Log.w(TAG, "loadPost:onCancelled", databaseError.toException());

    }
};
databaseReference.addValueEventListener(listener);

10-07 15:24