使用KEY到对话框检索Firebase数据

问题描述 投票:0回答:1

我已将我的Android应用程序与Firebase实时数据库连接。它通过一个活动成功地从数据库和项目中检索数据,该活动是显示CardView布局的RecyclerView。现在,当我选择一个特定的CARD时,将弹出对话框,显示该特定Firebase节点的所有数据,仅显示在对话框布局中。

我需要获取所选CARD的pushID(作为'selectedKey'变量)并调用Dialog,该对话框通过使用该'KEY'字符串再次从数据库中检索来显示Firebase的数据...还是还有其他简单的方法...?

我也说明了我想做的事。

connected firebase database showing the node

app activity and dialog layout

code - holder

<holder.setItemClickListener(new ItemClickListener() {
                @Override
                public void onClick(View view, int position) {
                    selectedArticle = model;
                    selectedKey = getSnapshots().getSnapshot(position).getKey();

                    Log.d("Key item", ""+selectedKey);

                    showArticle.setContentView(R.layout.show_article_dialog);

                    show_article_title.setText(model.getTitle());
                    show_article_tag1.setText(model.getTag1());
                    show_article_tag2.setText(model.getTag2());
                    show_article_tag3.setText(model.getTag3());
                    show_article_content.setText(model.getContent());

                    articleBack.setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View view) {
                            showArticle.dismiss();
                        }
                    });
                    showArticle.show();>
android firebase android-recyclerview android-cardview android-dialog
1个回答
0
投票

尝试使用此代码使用选定的节点密钥获取特定的节点数据

 DatabaseReference mArticalReference;

mArticalReference=FirebaseDatabase.getInstance().getReference().child("ARTICALE");

String selectedKey="-Lt0JLmniHevNn4JNP57" //replace with your selected key 

mArticalReference.child(selectedKey)addListenerForSingleValueEvent(new 
 ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {

            Map<String, String> map = (Map) dataSnapshot.getValue();
            if (map != null) {
                String message = map.get("content");
                String userName = map.get("tag1");
            }

    }

    @Override
    public void onCancelled(DatabaseError databaseError) {
    }
});
© www.soinside.com 2019 - 2024. All rights reserved.