当前位置: 首页 > 知识库问答 >
问题:

按recyclerView中的项获取firebase中节点的id

巫培
2023-03-14

我想通过单击cardView中的元素来访问这一点,我只能通过使用此行到达它之前的点

 reference = FirebaseDatabase.getInstance().getReference("Posts")
            .child(FirebaseAuth.getInstance().getCurrentUser().getUid());
    String str =  reference.getKey();

共有2个答案

凤棋
2023-03-14
FirebaseRecyclerOptions<Order> options = new FirebaseRecyclerOptions.Builder<Order()
                        .setQuery(query, Order.class)
                        .build();

adapter = new FirebaseRecyclerAdapter<Order, myOrderRecyclerViewHolder.myViewHolder>(options)
{
 String key =options.getSnapshots().getSnapshot(position).getKey()
}
水昊阳
2023-03-14

要获取子节点的键,需要加载引用,然后循环快照。getChildren()。比如:

reference.addListenerForSingleValueEvent(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for (DataSnapshot postSnapshot: dataSnapshot.getChildren()) {
            System.out.println(postSnapshot.getKey());
            ...
        }
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {
        throw databaseError.toException();
    }
}

如果只想检索一个特定节点,则需要知道该节点的密钥。通常这意味着您需要在读取数据时保留每个快照的键,并将其与回收器视图中每个节点的位置相关联。一旦用户单击视图中的某个项目,您就可以根据他们单击的位置查找该键,并可以使用以下方法再次从数据库中获取该项目:

reference.child(key).addListenerForSingleValueEvent(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        System.out.println(dataSnapshot.getKey());
        ...
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {
        throw databaseError.toException();
    }
}

有关这方面的更多信息,请参阅:

  • 从firebase数据库中单击recyclerview中的子项即可获取父键值
 类似资料:
  • 如何在中获取当前项?在我的用例中,RV项占用了所有屏幕空间,因此一次只有一个项。我以前试过谷歌,但没有找到任何有用的东西。

  • 单击Delete按钮时,应用程序崩溃。 2020-03-01 22:50:55.461 168 00-16800/com.solutions.rsaggarwal E/AndroidRuntime:致命异常:主进程:com.solutions.rsaggarwal,PID:16800 java.lang.NullPointerException:尝试在com.solutions.rsaggarwa

  • 我在我的一个项目中使用了neo4j,有一个节点只有一个属性,我想使用ID获得这个节点,它已经有一个ID了,但是当我使用这个代码时 它什么也不返回,这是我的节点 如果查询错误,那么如何使用数字查询

  • 一直在阅读文件和其他职位,但我无法删除一个节点。我试图通过一个值来选择节点。 然后在结果上调用 remove 方法 除了空错误值之外,什么都不会发生。我使用的是最新的firebase,大多数示例都是针对旧版本的,因此我不确定是否需要获取密钥,然后尝试删除该密钥作为参考? 这是第一次使用 firebase,所以我不确定我是否正确保存了数据。这是要保存的代码。 和屏幕截图

  • 问题内容: 每个人,我都试图制作一个音乐应用程序,为此,我在自己的作品中创建了一个Horizo​​ntal ,而我的Horizo​​ntal 正在获取带有艺术家姓名的图像。 但是单击后,我加载了另一个活动。在我的其他活动,我试图在从火力加载SongsData 用。 但是问题是我没有从Firebase获取数据,而是返回了空数据。我在下面提供了我的代码,这是我的Firebase数据库的屏幕截图:-Sc