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 crear un proyecto en Android (Aquí)
Vamos a crear nuestro proyecto en Android para desarrollar este ejemplo de como subir una imagen a
Firebase.
Registrar aplicación en Firebase
Vamos a registrar nuestra aplicación y la vamos a configurar.
|
Seleccionar el tipo de aplicación Android |
|
El paquete y el SHA1 de nuestra aplicación |
|
Descargar el archivo google-services.json y copiarlo en nuestra aplicación |
|
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í.
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.
|
Aplicación en ejecución mostrando los controles |
|
Imagen luego de ser seleccionada |
|
Subir imagen a nuestro Storage de Firebase |
Y con esto tendríamos lista nuestra aplicación. Gracias cualquier duda déjanos tu comentario.
Android Studio - Curso Español
gracias por este tutorial. Los botones no encuentran los metodos!!: estoy con la ultima version de Android studio.
ResponderEliminar