在CardView上从FireBase数据库中检索节点ID单击

时间:2019-05-16 15:30:18

标签: java android firebase firebase-realtime-database android-cardview

我有一个用于Android的firebase数据库。

要从Firebase检索并显示数据,我正在使用FirebaseRecyclerAdapter,并将结果显示到CardView。

现在,我将所有列表从所需的表移至CardView。每个节点都有一个自动生成的值,如下图所示。

enter image description here

当我单击相应的CardView时,如何在Android中检索此值。我需要此值来进行进一步的数据库操作。

现在,我尝试了此处发布的一些方法以及在线论坛,但似乎没有任何效果。我不是要完整的代码,而是要怎么做?一些参考代码会很棒。

致谢

1 个答案:

答案 0 :(得分:1)

要获取节点ID,请尝试以下操作:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
Query query = rootRef.child("Projects");
ValueEventListener valueEventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for(DataSnapshot ds : dataSnapshot.getChildren()) {
             String key = ds.getKey();
        }
    }

    @Override
    public void onCancelled(@NonNull DatabaseError databaseError) {
        Log.d(TAG, databaseError.getMessage());
    }
};
query.addListenerForSingleValueEvent(valueEventListener);

首先,添加对节点Projects的引用,然后在其内部循环并使用getKey()检索ID。