Я загружаю изображение в хранилище Firebase, а затем помещаю имя и URL этого изображения в базу данных. Затем я получаю URL-адрес изображения, чтобы отобразить его в своем обзоре. Теперь я хочу отобразить новейшее изображение, загруженное в хранилище Firebase, при запуске программы повторного просмотра. Как я могу изменить порядок в моей базе данных Firebase?
Прямо сейчас, первое добавленное вами изображение - это первое изображение в базе данных. Я хочу, чтобы последнее изображение, которое пользователь загружал, URL-адрес этого изображения должен быть в верхней части базы данных Firebase.
Каждое изображение
Name: tom
Desc: 1
Url: any
Name: miki
Desc: 2
Url: any
Описание: 1 самый старый
Описание: 2 самое новое
Как изменить порядок, пожалуйста, дайте мне полный код
WallpapersActivity
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 );
}
}
WallpapersAdapter
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;
}
CategoriesAdapter
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);
}
}
Приложения RecyclerView