Firebase est une plate-forme de développement d'applications Web et mobiles. Firebase Storage fournit des téléchargements et des téléchargements de fichiers sécurisés pour les applications Firebase. Dans cet article, vous allez créer une application Android avec la possibilité de télécharger des images vers Firebase Storage..
Si vous n'avez pas encore de compte Firebase, vous pouvez en créer un sur la page d'accueil de Firebase..
Une fois votre compte configuré, accédez à votre console Firebase, puis cliquez sur le bouton Ajouter un projet bouton pour ajouter un nouveau projet.
Entrez les détails de votre projet et cliquez sur le bouton Créer un projet bouton lorsque vous avez terminé. Sur la page suivante, cliquez sur le lien pour Ajouter Firebase à votre application Android.
Entrez le nom de votre package d'application. Mon dossier de candidature est com.tutsplus.code.android.tutsplusupload. Notez que le nom du package est namespaced avec une chaîne unique qui vous identifie ou identifie votre entreprise. Un moyen facile de trouver cela consiste à ouvrir votre Activité principale
déposer et copier le nom du paquet en partant du haut.
Une fois terminé, cliquez sur Enregistrer l'application. Sur la page suivante, vous recevrez un google-services.json télécharger sur votre ordinateur. Copiez et collez ce fichier dans le dossier app de votre application. (Le chemin devrait être quelque chose comme TutsplusUpload / app.)
Pour permettre à votre application d'accéder à Firebase Storage, vous devez configurer des autorisations dans la console Firebase. Depuis votre console, cliquez sur Espace de rangement, puis cliquez sur Règles.
Collez la règle ci-dessous et publiez.
service firebase.storage match / b / bucket / o match / allPaths = ** autorise la lecture, écrit: si vrai;
Cela permettra un accès en lecture et en écriture à votre stockage Firebase..
Ouvrez Android Studio et créez un nouveau projet. Vous pouvez appeler votre projet comme vous le souhaitez. J'ai appelé le mien TutsplusUpload.
Avant de poursuivre, vous devez ajouter quelques dépendances. Sur le panneau de gauche de votre Android Studio, cliquez sur Gradle Scripts.
Ouvrir construire.graduer (Projet: TutsplusUpload), et ajouter cette ligne de code dans le bloc des dépendances.
classpath 'com.google.gms: google-services: 3.0.0'
Ensuite, ouvrez construire.graduer (Module: app) ajouter les dépendances pour Firebase. Ceux-ci vont aussi dans le bloc des dépendances.
compiler 'com.google.firebase: firebase-storage: 9.2.1' compiler 'com.google.firebase: firebase-auth: 9.2.1'
Enfin, en dehors du bloc des dépendances, ajoutez le plugin pour Services Google.
appliquer le plugin: 'com.google.gms.google-services'
Enregistrer lorsque vous avez terminé, et il devrait synchroniser.
Activité principale
DispositionL'application aura besoin d'une mise en page d'activité. Deux boutons sont nécessaires: l’un pour sélectionner une image sur votre appareil et l’autre pour télécharger l’image sélectionnée. Après avoir sélectionné l'image que vous souhaitez télécharger, l'image sera affichée dans la mise en page. En d'autres termes, l'image ne sera pas définie à partir de la mise en page mais à partir de l'activité.
Dans ton Activité principale
mise en page, vous utiliserez deux mises en page-imbriquer la mise en page linéaire à l'intérieur de la mise en page relative. Commencez par ajouter le code pour votre mise en page relative.
le Disposition relative
occupe tout l'espace fourni par l'appareil. le LinearLayout
vivra à l'intérieur du Disposition relative
, et aura les deux boutons. Les boutons doivent être placés côte à côte, ainsi l’orientation à utiliser pour la LinearLayout
sera horizontal.
Voici le code pour la mise en page linéaire.
D'après le code ci-dessus, vous pouvez voir que des identifiants sont attribués aux deux boutons. Les identifiants seront utilisés pour cibler le bouton de l'activité principale, de telle sorte qu'une interaction avec le bouton est déclenchée. Vous verrez ça bientôt.
Sous le LinearLayout
, ajoutez le code pour le ImageView
.
Vous pouvez aussi voir que le ImageView
a un identifiant
; vous l'utiliserez pour renseigner la mise en page de l'image sélectionnée. Cela se fera dans l'activité principale.
Activité principale
Up Accédez à votre Activité principale
, et commencez par déclarer les champs. Ces champs seront utilisés pour initialiser vos vues (les boutons et ImageView
), ainsi que l’URI indiquant où l’image sera prise. Ajoutez ceci à votre activité principale, au-dessus du onCreate
méthode.
Bouton privé btnChoose, btnUpload; imageView privé imageView; Uri filePath privé; int finale finale PICK_IMAGE_REQUEST = 71;
PICK_IMAGE_REQUEST
est le code de demande défini en tant que variable d'instance.
Maintenant, vous pouvez initialiser vos vues comme suit:
// Initialiser les vues btnChoose = (Button) findViewById (R.id.btnChoose); btnUpload = (bouton) findViewById (R.id.btnUpload); imageView = (ImageView) findViewById (R.id.imgView);
Dans le code ci-dessus, vous créez de nouvelles instances de Bouton
et ImageView
. Les instances pointent sur les boutons que vous avez créés dans votre mise en page..
Vous devez définir un écouteur qui écoute les interactions sur les boutons. Lorsqu'une interaction se produit, vous souhaitez appeler une méthode qui déclenche soit la sélection d'une image dans la galerie, soit le téléchargement de l'image sélectionnée sur Firebase..
Sous les vues initialisées, définissez l'écouteur pour les deux boutons. L'auditeur ressemble à ceci.
btnChoose.setOnClickListener (new View.OnClickListener () @Override public void onClick (Afficher v) ChooseImage ();); btnUpload.setOnClickListener (new View.OnClickListener () @Override public void onClick (Voir v) uploadImage (););
Cela devrait être dans le onCreate ()
méthode. Comme je l'ai mentionné ci-dessus, les deux boutons appellent une méthode différente. le Choisir bouton appelle le ChooseImage ()
méthode, tandis que le Télécharger bouton appelle le uploadImage ()
méthode. Ajoutons ces méthodes. Les deux méthodes doivent être mises en œuvre en dehors de la onCreate ()
méthode.
Commençons par la méthode pour choisir une image. Voici à quoi cela devrait ressembler:
void privé ChooseImage () Intention Intention = nouvelle Intention (); intent.setType ("image / *"); intent.setAction (Intent.ACTION_GET_CONTENT); startActivityForResult (Intent.createChooser (intention, "Sélectionner une image"), PICK_IMAGE_REQUEST);
Lorsque cette méthode est appelée, une nouvelle Intention
l'instance est créée. Le type d'intention est défini sur image et son action est définie pour obtenir du contenu. L'intention crée une boîte de dialogue de sélection d'images permettant à l'utilisateur de parcourir la galerie de périphériques pour sélectionner l'image.. startActivityForResult
est utilisé pour recevoir le résultat, qui est l'image sélectionnée. Pour afficher cette image, vous utiliserez une méthode appelée onActivityResult
.
onActivityResult
reçoit un code de requête, un code de résultat et les données. Dans cette méthode, vous vérifierez si le code de demande est égal à PICK_IMAGE_REQUEST
, avec le code de résultat égal à RESULT_OK
et les données disponibles. Si tout cela est vrai, vous souhaitez afficher l'image sélectionnée dans le ImageView
.
Sous le ChooseImage ()
méthode, ajoutez le code suivant.
@Override protected void onActivityResult (int requestCode, int resultCode, données d'intention) 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); imageView.setImageBitmap (bitmap); catch (IOException e) e.printStackTrace ();
Nous pouvons maintenant implémenter la méthode de téléchargement de l'image sur Firebase. Commencez par déclarer les champs nécessaires à Firebase. Faites ceci en dessous des autres champs que vous avez déclarés pour votre classe..
// Firebase FirebaseStorage storage; StorageReference storageReference;
espace de rangement
sera utilisé pour créer un FirebaseStorage
par exemple, alors que storageReference
pointera vers le fichier téléchargé. À l'intérieur de votre onCreate ()
méthode, ajouter le code pour faire cela-créer un FirebaseStorage
exemple et obtenir la référence de stockage. Les références peuvent être considérées comme des pointeurs vers un fichier dans le cloud.
storage = FirebaseStorage.getInstance (); storageReference = storage.getReference ();
Voici ce que le uploadImage ()
la méthode devrait ressembler à.
void privé uploadImage () if (filePath! = null) ProgressDialog final progressDialog = new ProgressDialog (this); progressDialog.setTitle ("Téléchargement en cours ..."); progressDialog.show (); StorageReference ref = storageReference.child ("images /" + UUID.randomUUID (). ToString ()); ref.putFile (filePath) .addOnSuccessListener (nouveau OnSuccessListener() @Override public void onSuccess (UploadTask.TaskSnapshot taskSnapshot) progressDialog.dismiss (); Toast.makeText (MainActivity.this, "Téléchargé", Toast.LENGTH_SHORT) .show (); ) .addOnFailureListener (new OnFailureListener () @Override public void onFailure (@NonNull Exception e) progressDialog.dismiss (); Toast.makeText (MainActivity.this, "Failed" + e.getMessage (), Toast.LumGLGG. ) .show ();) .addOnProgressListener (nouveau OnProgressListener () @Override public void onProgress (UploadTask.TaskSnapshot taskSnapshot) progression double = (100.0 * taskSnapshot.getBytesTransferred () / taskSnapshot .getTotalByteCount ()); progressDialog.setMessage ("Téléchargé" + (int) progress + "%"); );
Quand le uploadImage ()
méthode est appelée, une nouvelle instance de ProgressDialog
est initialisé. Un avis textuel indiquant à l'utilisateur que l'image est en cours de téléchargement s'affiche. Puis une référence à l'image téléchargée, storageReference.child ()
, est utilisé pour accéder au fichier téléchargé dans le images dossier. Ce dossier est créé automatiquement lors du téléchargement de l'image. Les auditeurs sont également ajoutés, avec des messages de pain grillé. Ces messages sont affichés en fonction de l'état du téléchargement.
Enfin, vous devez demander l'autorisation d'utilisation de votre application. Sans cela, les utilisateurs de votre application ne pourront pas parcourir la galerie de leurs appareils ni se connecter à Internet avec votre application. C'est facile. Il vous suffit de coller ce qui suit dans votre AndroidManifest fichier. Collez-le juste au-dessus du application
balise d'élément.
Ceci demande la permission d'utiliser Internet et de lire le stockage externe.
Maintenant, lancez votre application! Vous devriez pouvoir sélectionner une image et la télécharger avec succès sur Firebase. Pour confirmer l’image téléchargée, retournez sur votre console et vérifiez dans le Des dossiers une partie de votre stockage.
Firebase offre aux développeurs de nombreux avantages, notamment le téléchargement de fichiers avec stockage. Le téléchargement d'images à partir de votre application Android nécessite que vous travailliez avec Activités et Intentions. En suivant ce tutoriel, votre compréhension des activités et des intentions s’est approfondie. J'espère que tu as aimé!
!