Я создаю социальное приложение на Android, используя Firebase. Каждый пользователь может загрузить до трех изображений, которые хранятся с помощью FirebaseStorage.
Активность, когда пользователи добавляют фотографии
Я использую уникальный идентификатор пользователя для именования фотографий. Так, например, будут называться фотографии пользователя: userid_1.jpg, userid_2.jpg, userid_3.jpg
Я использую первое изображение в качестве изображения профиля пользователя. Это все хорошо, но я хочу разрешить пользователю удалять фотографии и добавлять новые.
Так, например, у пользователя есть три фотографии и удаляет первую, поэтому теперь фото2 перемещается на место фото1и фото3 занимает место фото2. Поэтому я могу легко получить этот эффект в упражнении:
photo1ImageView.setImageDrawable(photo2ImageView.getDrawable());
photo2ImageView.setImageDrawable(photo3ImageView.getDrawable());
photo3ImageView.setImageResource(R.drawable.addphotoicon);
Но теперь проблема заключается в том, как справиться с этим в FirebaseStorage. Поэтому, очевидно, я начинаю с удаления картинки.
FirebaseStorage.getInstance().getReference().child("images").child(userID + "_1.jpg").delete();
И тогда я хотел переименовать оставшиеся две картинки.
Так что после удаления photo1, userid_1.jpg исчезает, userid_2.jpg становится userid_1.jpg, userid_3. jpg становится userid_2.jpg
Но переименовать файлы в FirebaseStorage невозможно. Так что теперь, когда это действие загружается в следующий раз, оно поместит photo2 во второй ImageView и photo3 в третий ImageView, оставив первый ImageView пустым. Изображение профиля (userid_1.jpg) также будет потеряно. Это не то поведение, которое мне нужно.
Другой способ, о котором я подумал: при удалении фотографии я удаляю все фотографии пользователя и повторно загружаю оставшиеся с правильными именами, но этоЭто очень неэффективное и ненужное использование в Firebase.
Мне просто интересно, может ли кто-нибудь придумать эффективный способ сделать это.