【发布时间】:2020-04-18 23:34:03
【问题描述】:
我无法解决快速加载数据的问题,从 firebase 加载数据需要很长时间。
查看加载菜单的代码,请帮我找出错误。
//Load menu
recycler_menu = (RecyclerView) findViewById(R.id.recycler_menu);
recycler_menu.setHasFixedSize(true);
layoutManager = new LinearLayoutManager(this);
recycler_menu.setLayoutManager(layoutManager);
Log.e("home","Outside loadmenu");
loadMenu();
}
private void loadMenu() {
Log.e("home","Inside loadmenu");
FirebaseRecyclerOptions<Category> options;
options = new FirebaseRecyclerOptions.Builder<Category>()
.setQuery(category, Category.class)
.build();
Log.e("home","After Options");
adapter= new FirebaseRecyclerAdapter<Category, MenuViewHolder>(options) {
@NonNull
@Override
public MenuViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
Log.e("home","Inside MenuView");
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.menu_item, parent, false);
return new MenuViewHolder(view);
}
@Override
protected void onBindViewHolder(@NonNull MenuViewHolder holder, int position, @NonNull Category model) {
Log.e("home","Inside onBind");
holder.txtMenuName.setText(model.getName());
holder.txtMenuPrice.setText(model.getPrice());
Picasso.with(getBaseContext()).load(model.getImage()).into(holder.imageView);
final Category clickItem = model;
holder.setItemClickListener(new ItemClickListener() {
@Override
public void onClick(View view, int position, boolean isLongClick) {
// Toast.makeText(home.this, "" + clickItem.getName(), Toast.LENGTH_SHORT).show();I
Intent clothDetail = new Intent(home.this,ClothesDetail.class);
clothDetail.putExtra("ClothId",adapter.getRef(position).getKey());
startActivity(clothDetail);
}
});
}
};
recycler_menu.setAdapter(adapter);
adapter.startListening();
adapter.notifyDataSetChanged();
Log.e("home","last laodmenu");
}
@Override
protected void onStart() {
Log.e("home","Inside onStart");
super.onStart();
loadMenu();
adapter.startListening();
}
当我使用 firebase 数据库和 storage10.0.1' 和 firebase-ui-database:1.1.1' 时,它在几秒钟内加载速度更快。但是当我升级到最新版本时,数据库和 UI 的 gradle 版本都需要几分钟才能加载。
【问题讨论】:
-
一次加载多少个项目?
-
只有七个,请帮忙
-
some time to load是什么意思?多少秒? -
加载大约需要 5 到 10 秒,甚至更多
标签: android firebase firebase-realtime-database android-recyclerview