[英]How to get parent node in Firebase
我正在使用 Firebase 将内容显示到RecyclerView
中。 在适配器 class 中,我使用此代码传递选定节点的密钥:
holder.view.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(context, NewsDetails.class);
intent.putExtra("NewsKey",getRef(position).getKey());
context.startActivity(intent);
}
});
此代码传递了键(屏幕截图中的蓝色箭头),我还想将父节点(红色箭头)作为字符串传递。 我如何获取父节点并将其传递给putExtra
?
这是我如何调用我的数据库:
private void setUpFirebase() {
newsRecycler = findViewById(R.id.newsRecycler);
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
linearLayoutManager.setReverseLayout(true);
linearLayoutManager.setStackFromEnd(true);
newsRecycler.setLayoutManager(linearLayoutManager);
FirebaseRecyclerOptions<NewsItem> options =
new FirebaseRecyclerOptions.Builder<NewsItem>().setQuery(FirebaseDatabase.getInstance().getReference().child("news"), NewsItem.class).build();
newsAdapter = new NewsAdapter(options, this);
newsRecycler.setAdapter(newsAdapter);
}
您可以在您的情况下对数据库引用“ getRef(position)
”使用getParent()
,然后使用putExtra()
将其密钥放入意图中
Intent intent = new Intent(context, NewsDetails.class);
intent.putExtra("NewsKey", getRef(position).getKey());
DatabaseReference parent = getRef(position).getParent();
if (parent != null)
intent.putExtra("ParentKey", parent.getKey());
context.startActivity(intent);
你可以试试
if(ref.parent() != null) {
val news = ref.parent().key()
}
有关更多信息,请阅读DatabaseReference#getParent()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.