У меня есть код для хранения изображений в хранилище Firebase, но он хранит только одно изображение за раз, и мне нужно хранить несколько изображений Вот код:
Save.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Saveimages();
}
});
}
private void Saveimages() {
comment = Comment.getText().toString();
if (imageUri==null||imageUri2==null){
Toast.makeText(this, "...Select a Image...", Toast.LENGTH_SHORT).show();
}
else if(imageUri!=null&&imageUri2!=null&&imageUri3==null&&imageUri4==null) {
Save2ImagesFirebase();
}
else if(imageUri!=null&&imageUri2!=null&&imageUri3!=null&&imageUri4==null){
Save3ImagesFirebase();
}
else if(imageUri!=null&&imageUri2!=null&&imageUri3!=null&&imageUri4!=null){
Save4ImagesFirebase();
}
}
private void Save2ImagesFirebase() {
StorageReference filepath = mStorage.child(" Images");
filepath.putFile(imageUri).addOnCompleteListener(new OnCompleteListener<UploadTask.TaskSnapshot>() {
@Override
public void onComplete(@NonNull Task<UploadTask.TaskSnapshot> task) {
if (task.isSuccessful()){
Toast.makeText(ImageVersus.this, " Published", Toast.LENGTH_SHORT).show();
}
else{
Toast.makeText(ImageVersus.this, "..Error..", Toast.LENGTH_SHORT).show();
}
}
});
StorageReference filepath2 = mStorage.child(" Images");
filepath2.putFile(imageUri2).addOnCompleteListener(new OnCompleteListener<UploadTask.TaskSnapshot>() {
@Override
public void onComplete(@NonNull Task<UploadTask.TaskSnapshot> task) {
if (task.isSuccessful()){
Toast.makeText(ImageVersus.this, " Published", Toast.LENGTH_SHORT).show();
}
else{
Toast.makeText(ImageVersus.this, "..Error..", Toast.LENGTH_SHORT).show();
}
}
});
}
private void Save3ImagesFirebase() {
StorageReference filepath = mStorage.child(" Images");
filepath.putFile(imageUri).addOnCompleteListener(new OnCompleteListener<UploadTask.TaskSnapshot>() {
@Override
public void onComplete(@NonNull Task<UploadTask.TaskSnapshot> task) {
if (task.isSuccessful()){
Toast.makeText(ImageVersus.this, " Published", Toast.LENGTH_SHORT).show();
}
else{
Toast.makeText(ImageVersus.this, "..Error..", Toast.LENGTH_SHORT).show();
}
}
});
StorageReference filepath2 = mStorage.child(" Images");
filepath2.putFile(imageUri2).addOnCompleteListener(new OnCompleteListener<UploadTask.TaskSnapshot>() {
@Override
public void onComplete(@NonNull Task<UploadTask.TaskSnapshot> task) {
if (task.isSuccessful()){
Toast.makeText(ImageVersus.this, " Published", Toast.LENGTH_SHORT).show();
}
else{
Toast.makeText(ImageVersus.this, "..Error..", Toast.LENGTH_SHORT).show();
}
}
});
StorageReference filepath3 = mStorage.child(" Images");
filepath3.putFile(imageUri3).addOnCompleteListener(new OnCompleteListener<UploadTask.TaskSnapshot>() {
@Override
public void onComplete(@NonNull Task<UploadTask.TaskSnapshot> task) {
if (task.isSuccessful()){
Toast.makeText(ImageVersus.this, " Published", Toast.LENGTH_SHORT).show();
}
else{
Toast.makeText(ImageVersus.this, "..Error..", Toast.LENGTH_SHORT).show();
}
}
});
}
private void Save4ImagesFirebase() {
StorageReference filepath = mStorage.child(" Images");
filepath.putFile(imageUri).addOnCompleteListener(new OnCompleteListener<UploadTask.TaskSnapshot>() {
@Override
public void onComplete(@NonNull Task<UploadTask.TaskSnapshot> task) {
if (task.isSuccessful()){
Toast.makeText(ImageVersus.this, " Published", Toast.LENGTH_SHORT).show();
}
else{
Toast.makeText(ImageVersus.this, "..Error..", Toast.LENGTH_SHORT).show();
}
}
});
StorageReference filepath2 = mStorage.child(" Images");
filepath2.putFile(imageUri2).addOnCompleteListener(new OnCompleteListener<UploadTask.TaskSnapshot>() {
@Override
public void onComplete(@NonNull Task<UploadTask.TaskSnapshot> task) {
if (task.isSuccessful()){
Toast.makeText(ImageVersus.this, " Published", Toast.LENGTH_SHORT).show();
}
else{
Toast.makeText(ImageVersus.this, "..Error..", Toast.LENGTH_SHORT).show();
}
}
});
StorageReference filepath3 = mStorage.child(" Images");
filepath3.putFile(imageUri3).addOnCompleteListener(new OnCompleteListener<UploadTask.TaskSnapshot>() {
@Override
public void onComplete(@NonNull Task<UploadTask.TaskSnapshot> task) {
if (task.isSuccessful()){
Toast.makeText(ImageVersus.this, " Published", Toast.LENGTH_SHORT).show();
}
else{
Toast.makeText(ImageVersus.this, "..Error..", Toast.LENGTH_SHORT).show();
}
}
});
StorageReference filepath4 = mStorage.child(" Images");
filepath4.putFile(imageUri4).addOnCompleteListener(new OnCompleteListener<UploadTask.TaskSnapshot>() {
@Override
public void onComplete(@NonNull Task<UploadTask.TaskSnapshot> task) {
if (task.isSuccessful()){
Toast.makeText(ImageVersus.this, " Published", Toast.LENGTH_SHORT).show();
}
else{
Toast.makeText(ImageVersus.this, "..Error..", Toast.LENGTH_SHORT).show();
}
}
});
}
Код выглядит длинным, но тольково многом то же самое.Я пытаюсь повторить метод в зависимости от того, что пользователь делает, если он выбирает только два изображения, он должен сохранить эти два сразу, и если он выбирает дерево, он должен сохранять эти 3 и так далее ...