Blog para desarrollo de aplicaciones en Android, aprende paso a paso como crear aplicaciones.

Usamos cookies propias y de terceros que entre otras cosas recogen datos sobre sus hábitos de navegación para mostrarle publicidad personalizada y realizar análisis de uso de nuestro sitio.
Si continúa navegando consideramos que acepta su uso. OK Más información | Y más

Como subir una imagen en Firebase en Android

Android Firebase Storage Example

Hola amigos en esta ocasión les traemos un tutorial para subir imágenes en Firebase.
Como subir una imagen en Firebase en Android
Como subir una imagen en Firebase en Android

 Como crear un proyecto en Android (Aquí)

Vamos a crear nuestro proyecto en Android para desarrollar este ejemplo de como subir una imagen a Firebase.
Como subir una imagen en Firebase en Android

Registrar aplicación en Firebase

Vamos a registrar nuestra aplicación y la vamos a configurar.
Como subir una imagen en Firebase en Android
Seleccionar el tipo de aplicación Android

Como subir una imagen en Firebase en Android
El paquete y el SHA1 de nuestra aplicación

Como subir una imagen en Firebase en Android
Descargar el archivo google-services.json y copiarlo en nuestra aplicación

Como subir una imagen en Firebase en Android
Agregar las siguientes lineas de código en nuestros archivos correspondientes

Crear diseño de la aplicación Storage Firebase

Vamos crear nuestra aplicación y agregaremos los siguientes controles en nuestro diseño del activity_main.xml.

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Elegir Imagen"
        android:id="@+id/elegirImg"/>

    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Subir Imagen"
        android:id="@+id/subirImg"/>

    <ImageView
        android:layout_width="match_parent"
        android:layout_height="300dp"
        android:id="@+id/imgView"/>
</LinearLayout>

</android.support.constraint.ConstraintLayout>
Nos quedaría así.
Como subir una imagen en Firebase en Android

Código de MainActivity de Storage Firebase

Vamos a agregar el código para nuestra aplicación y que podamos subir las imágenes a nuestro Firebase.

import android.app.ProgressDialog;
import android.content.Intent;
import android.graphics.Bitmap;
import android.net.Uri;
import android.provider.MediaStore;
import android.support.annotation.NonNull;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.Toast;

import com.google.android.gms.tasks.OnFailureListener;
import com.google.android.gms.tasks.OnSuccessListener;
import com.google.firebase.storage.FirebaseStorage;
import com.google.firebase.storage.StorageReference;
import com.google.firebase.storage.UploadTask;

public class MainActivity extends AppCompatActivity {
    Button elegirImg, subirImg;
    ImageView imagenView;
    int PICK_IMAGE_REQUEST = 111;
    Uri filePath;
    ProgressDialog pd;

    //creating reference to firebase storage
    FirebaseStorage storage = FirebaseStorage.getInstance();
    StorageReference storageRef = storage.getReferenceFromUrl("gs://recestascatrachasapp.appspot.com");    //change the url according to your firebase app


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

        elegirImg = (Button)findViewById(R.id.elegirImg);
        subirImg = (Button)findViewById(R.id.subirImg);
        imagenView = (ImageView)findViewById(R.id.imgView);

        pd = new ProgressDialog(this);
        pd.setMessage("Subiendo....");

        elegirImg.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
                intent.setType("image/*");
                //intent.setAction(Intent.ACTION_PICK);
                startActivityForResult(Intent.createChooser(intent, "Seleccionar Imagen"), PICK_IMAGE_REQUEST);
            }
        });

        subirImg.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if(filePath != null) {
                    pd.show();

                    StorageReference childRef = storageRef.child("image.jpg");

                    //uploading the image
                    UploadTask uploadTask = childRef.putFile(filePath);

                    uploadTask.addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
                        @Override
                        public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
                            pd.dismiss();
                            Toast.makeText(MainActivity.this, "Subida exitosamente", Toast.LENGTH_SHORT).show();
                        }
                    }).addOnFailureListener(new OnFailureListener() {
                        @Override
                        public void onFailure(@NonNull Exception e) {
                            pd.dismiss();
                            Toast.makeText(MainActivity.this, "Problema al subir -> " + e, Toast.LENGTH_SHORT).show();
                        }
                    });
                }
                else {
                    Toast.makeText(MainActivity.this, "Seleccionar una imagen", Toast.LENGTH_SHORT).show();
                }
            }
        });
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        if (requestCode == PICK_IMAGE_REQUEST && resultCode == RESULT_OK && data != null && data.getData() != null) {
            filePath = data.getData();

            try {
                Bitmap bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), filePath);

                imagenView.setImageBitmap(bitmap);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
}

Y listo ahora verificaremos nuestra aplicación.

Como crear un emulador AVD en Android(Aquí)

Vamos a crear un emulador para ver nuestra aplicación en ejecución.
Como subir una imagen en Firebase en Android
Aplicación en ejecución mostrando los controles 
Como subir una imagen en Firebase en Android
Imagen luego de ser seleccionada



Como subir una imagen en Firebase en Android
Subir imagen a nuestro Storage de Firebase

Como subir una imagen en Firebase en Android

Y con esto tendríamos lista nuestra aplicación. Gracias cualquier duda déjanos tu comentario.

Android Studio - Curso Español

Android Studio - Curso Español

1 comentario:

  1. gracias por este tutorial. Los botones no encuentran los metodos!!: estoy con la ultima version de Android studio.

    ResponderEliminar

x

Registrate!

Curso Android Español

Curso Kotlin Español

eBook Free Android Studio

Noticias y Eventos

¡Directamente a tu INBOX!

Le enviaremos nuestros recursos gratis. Para obtener nuestro contenido nuevo, únase a nuestra comunidad. No te molestaremos enviando información inútil. ¡No te pierdas ninguna actualización, mantente conectado! Recuerda verificar tu correo electronico.

Ingrese su dirección de correo electrónico:

Entregado por FeedBurner