java - 查询或创建一个算法来关联 Firebase 数据库上 main 的 2 个子项?
问题描述
我想在艺术和最爱之间建立联系。最喜欢的孩子是用户唯一的 id。我想专门这样做:将艺术儿童显示为 01,02,03,46,47,48,50,66,106(这些值是可变的)。
这是我的一般数据库结构:
主要的:
艺术:
最爱:
private void callFavorites () {
myRefArts = firebaseDatabase.getReference("art");
favOptions = new FirebaseRecyclerOptions.Builder<Art>()
.setQuery(myRefArts, Art.class).build();
favAdapter = new FirebaseRecyclerAdapter<Art, ArtViewHolder>(favOptions) {
@Override
protected void onBindViewHolder(@NonNull ArtViewHolder holder, int position, @NonNull Art model) {
holder.textViewArtName.setText(model.getArt_name());
Picasso.with(getBaseContext()).load(model.getArt_image())
.into(holder.imageViewArtImage);
holder.setItemClickListener(new ItemClickListener() {
@Override
public void onClick(View view, int position, boolean isLongClick) {
Toast.makeText(FavoriteActivity.this, "Henüz yapılmadı", Toast.LENGTH_SHORT).show();
}
});
}
@NonNull
@Override
public ArtViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View view = LayoutInflater.from(viewGroup.getContext())
.inflate(R.layout.card_design_art,viewGroup,false);
return new ArtViewHolder(view);
}
};
rv.setAdapter(favAdapter);
favAdapter.startListening();
}
解决方案
您所拥有的称为索引数据,其中您/favorite/$uid
是 . 下项目的索引/art/$artid
。要使用 FirebaseUI 显示此内容,请使用带有索引数据的 FirebaseUI 进行检查。
最重要的是,您需要通过调用向适配器传递两个查询/引用setIndexedQuery
:一个对主要实体的引用,一个对索引的查询/引用。
在你的情况下,这看起来像:
myRefArts = firebaseDatabase.getReference("art");
myFavoritesIndex = firebaseDatabase.getReference("favorites").child(FirebaseAuth.getInstance().getCurrentUser().getUid());
favOptions = new FirebaseRecyclerOptions.Builder<Art>()
.setIndexedQuery(myFavoritesIndex, myRefArts, Art.class).build();
推荐阅读
- apache-kafka - poll 调用暂停的 kafka 消费者时的行为
- javascript - 包含 javascript 的 XML 的 VS Code 语法高亮显示
- flutter - 如何在 Flutter 网页版中播放 DRM 内容?
- tpl-dataflow - TPL Dataflow BroadcastBlock:将元素广播到链接目标后自动清除块?
- node.js - 如何解决我的 json 文件中的此错误
- postgresql - 如何获取一组 postgres hstore 记录中每个键的最后一个值?
- python - 如何将简单查询从 React 应用程序发送到 Flask API?
- javascript - 在 Facebook 上登录 - Angular
- ruby-on-rails - Controller#index 中的 ActionController::UnfilteredParameters 无法将未经许可的参数转换为 redirect_to 的哈希值
- .net - Self Sign .Net 基于窗口的应用程序