首页 > 解决方案 > 数据没有从 firebase 传到我的应用程序

问题描述

我正在尝试将图像和名称从 Firebase 数据库加载到我的应用程序中,RecyclerView但是当我运行它时,它没有显示图像和名称且没有错误,这是我的代码。

  //Load menu
    recycler_menu=(RecyclerView)findViewById(R.id.recycler_menu);
    recycler_menu.setHasFixedSize(true);
    layoutManager= new LinearLayoutManager(this);
    recycler_menu.setLayoutManager(layoutManager);
    loadMenu();

}
  private void loadMenu(){
      FirebaseRecyclerOptions<Category> options = new FirebaseRecyclerOptions.Builder<Category>().setQuery(category, Category.class).build();
          FirebaseRecyclerAdapter<Category, MenuViewHolder> adapter= new FirebaseRecyclerAdapter<Category, MenuViewHolder>(options){
              @Override
              public MenuViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
                  View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.menu_item, parent, false);

                  MenuViewHolder viewHolder = new MenuViewHolder(view);

                  return viewHolder;
              }
           @Override
           protected void onBindViewHolder(MenuViewHolder holder, int position, Category model) {
               holder.txtMenuName.setText(model.getName());
               Picasso.with(getBaseContext()).load(model.getImage()).into(holder.imageView);
           }
           };
       recycler_menu.setAdapter(adapter);
   }

我的代码运行良好,但没有显示图像和名称,显示的是空白活动。请帮忙。

标签: javaandroidfirebasefirebase-realtime-databaseandroid-recyclerview

解决方案


只需添加adapter.startListening()OnStart以启动数据侦听器并adapter.stopListening()onStop这种方式停止它:

@Override
protected void onStart() {
    super.onStart();
    adapter.startListening();
}

@Override
protected void onStop() {
    super.onStop();
    adapter.stopListening();
}

推荐阅读