我已将我的Android应用程序与Firebase实时数据库连接。它通过一个活动成功地从数据库和项目中检索数据,该活动是显示CardView布局的RecyclerView。现在,当我选择一个特定的CARD时,将弹出对话框,显示该特定Firebase节点的所有数据,仅显示在对话框布局中。
我需要获取所选CARD的pushID(作为'selectedKey'变量)并调用Dialog,该对话框通过使用该'KEY'字符串再次从数据库中检索来显示Firebase的数据...还是还有其他简单的方法...?
我也说明了我想做的事。
connected firebase database showing the node
app activity and dialog layout
<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();>
尝试使用此代码使用选定的节点密钥获取特定的节点数据
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) {
}
});