gpt4 book ai didi

java - 我想在 recyclerview 开始时显示上传到 firebase storage 的最新图像

转载 作者:行者123 更新时间:2023-12-02 01:17:09 25 4
gpt4 key购买 nike

我正在将图像上传到 firebase 存储,然后将该图像的名称和 url 推送到数据库中。接下来,我将检索图像 url,以在我的 recyclerview 中显示图像。现在我想在 recyclerview 启动时显示上传到 firebase 存储的最新图像。如何更改 Firebase 数据库中的顺序?

现在,您添加的第一张图像是数据库中的第一张图像。我想要用户上传的最新图像,该图像的 url 应位于 firebase 数据库的顶部。

每张图片

Name: tom
Desc: 1
Url: any

Name: miki
Desc: 2
Url: any

描述:1 是最旧的

描述:2 是最新的

如何更改订单请给我完整的代码

壁纸 Activity

public class WallpapersActivity extends AppCompatActivity {

List<Wallpaper> wallpaperList;
List<Wallpaper> favList;
RecyclerView recyclerView;
WallpapersAdapter adapter;

DatabaseReference dbWallpapers, dbFavs;
ProgressBar progressBar;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_wallpapers);


Intent intent = getIntent();
final String category = intent.getStringExtra("category");

Toolbar toolbar = findViewById(R.id.toolbar);
toolbar.setTitle(category);
setSupportActionBar(toolbar);

favList = new ArrayList<>();
wallpaperList = new ArrayList<>();
recyclerView = findViewById(R.id.recycler_view);
recyclerView.setHasFixedSize(true);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
adapter = new WallpapersAdapter(this, wallpaperList);

recyclerView.setAdapter(adapter);

progressBar = findViewById(R.id.progressbar);



dbWallpapers = FirebaseDatabase.getInstance().getReference("images")
.child(category);



if(FirebaseAuth.getInstance().getCurrentUser() != null){
dbFavs = FirebaseDatabase.getInstance().getReference("users")
.child( FirebaseAuth.getInstance().getCurrentUser().getUid() )
.child( "favourites" )
.child( category );

fetchFavWallpapers( category );
}else {
fetchWallpapers( category );
}
}

壁纸适配器

public class WallpapersAdapter extends RecyclerView.Adapter<WallpapersAdapter.WallpaperViewHolder> {

private Context mCtx;
private List<Wallpaper> wallpaperList;
DatabaseReference dbWallpapers;


public WallpapersAdapter(Context mCtx, List<Wallpaper> wallpaperList) {
this.mCtx = mCtx;
this.wallpaperList = wallpaperList;


}

@Override
public WallpaperViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(mCtx).inflate( R.layout.recyclerview_wallpapers, parent, false);
return new WallpaperViewHolder(view);

}

@Override
public void onBindViewHolder(WallpaperViewHolder holder, int position) {
Wallpaper w = wallpaperList.get(position);
holder.textView.setText(w.title);
Glide.with(mCtx)
.load(w.url)
.into(holder.imageView);

if (w.isFavourite) {
holder.checkBoxFav.setChecked(true);
}
}

@Override
public int getItemCount() {
return wallpaperList.size();
}


class WallpaperViewHolder extends RecyclerView.ViewHolder
implements View.OnClickListener, CompoundButton.OnCheckedChangeListener {

TextView textView;
ImageView imageView;
}

类别适配器

public class CategoriesAdapter extends RecyclerView.Adapter<CategoriesAdapter.CategoryViewHolder> {

private Context mCtx;
private List<Category> categoryList;

public CategoriesAdapter(Context mCtx, List<Category> categoryList) {
this.mCtx = mCtx;
this.categoryList = categoryList;
}

@Override
public CategoryViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(mCtx).inflate(R.layout.recyclerview_categories, parent, false);
return new CategoryViewHolder(view);
}

@Override
public void onBindViewHolder(CategoryViewHolder holder, int position) {
Category c = categoryList.get(position);
holder.textView.setText(c.name);
Glide.with(mCtx)
.load(c.thumb)
.into(holder.imageView);
}

@Override
public int getItemCount() {
return categoryList.size();
}

class CategoryViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {

TextView textView;
ImageView imageView;

public CategoryViewHolder(View itemView) {
super(itemView);

textView = itemView.findViewById(R.id.text_view_cat_name);
imageView = itemView.findViewById(R.id.image_view);

itemView.setOnClickListener(this);
}

@Override
public void onClick(View view) {
int p = getAdapterPosition();
Category c = categoryList.get(p);

Intent intent = new Intent(mCtx, WallpapersActivity.class);
intent.putExtra("category", c.name);

mCtx.startActivity(intent);
}
}

Firebase Database

Apps RecyclerView

最佳答案

在壁纸 Activity 中设置适配器之前添加此行:

                Collections.reverse( wallpaperList);

关于java - 我想在 recyclerview 开始时显示上传到 firebase storage 的最新图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58377634/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com