Les applications mobiles ont besoin d'un serveur principal pour effectuer des tâches telles que l'authentification des utilisateurs et la synchronisation des données utilisateur sur plusieurs appareils. La création d'un tel serveur nécessite toutefois des compétences qui font défaut à la plupart des développeurs d'applications indépendants. Heureusement, il existe plusieurs back-end en tant que plates-formes de services, souvent appelées BaaS, que vous pouvez utiliser aujourd'hui. Google Firebase est l'une de ces plates-formes.
Firebase offre des services essentiels tels que l’analyse, le signalement des incidents, l’authentification des utilisateurs et la messagerie en nuage, sans frais. Ses services freemium incluent une base de données NoSQL, l’hébergement de fichiers et l’hébergement statique de sites Web en temps réel..
Dans ce tutoriel, je vais vous montrer comment ajouter une authentification utilisateur, des analyses et un stockage de données à distance à votre application Android à l'aide de Firebase..
Pour suivre, vous aurez besoin de:
Firebase Analytics est l’une des solutions d’analyse des applications mobiles les plus populaires actuellement. En l'utilisant, vous pouvez comprendre précisément qui sont vos utilisateurs et comment ils utilisent votre application..
Les dernières versions d'Android Studio par Canary intègrent la prise en charge de Firebase Analytics. Cela signifie que vous pouvez ajouter Firebase Analytics à votre projet sans avoir à quitter Android Studio..
Pour commencer à intégrer Firebase Analytics à votre projet, cliquez sur Outils> Firebase. Vous serez présenté avec ce qui suit Assistant la fenêtre:
Cliquer sur Analytique et alors Enregistrer un événement Analytics.
Vous devez maintenant associer votre projet Android Studio à un projet Firebase. Par conséquent, cliquez sur le bouton Se connecter à Firebase bouton.
Dans la boîte de dialogue qui apparaît, vous pourrez voir tous vos projets Firebase existants. Vous pouvez en choisir un ou créer un nouveau projet. Pour le moment, je vous suggère de choisir le Créer un nouveau projet Firebase option et donnez un nom unique au projet.
Une fois que vous appuyez sur le Se connecter à Firebase bouton situé à l'intérieur de la boîte de dialogue, Android Studio effectuera automatiquement toutes les modifications de configuration requises, telles que la génération d'un fichier. google-services.json déposer et télécharger une empreinte digitale SHA1.
Vous pouvez maintenant appuyer sur le Ajouter des analyses à votre application bouton pour ajouter le plugin Firebase et la dépendance Firebase Core à votre projet. Android Studio vous montrera les modifications exactes qui seront apportées à la build.gradle des dossiers.
presse Accepter les modifications pour compléter la configuration.
Une fois que vous avez configuré Firebase Analytics pour votre application, vous n'avez pas à écrire de code supplémentaire si vous êtes satisfait des événements d'analyse générés automatiquement, tels que l'utilisateur ouvrant votre application pour la première fois et l'utilisant plus de 10 secondes, pour effectuer un achat intégré ou désinstaller l'application. Par conséquent, vous pouvez exécuter votre application maintenant (sur un émulateur ou sur un périphérique réel) et, dans les prochaines 24 heures, vous pourrez afficher les journaux d'analyse dans la console Firebase..
Si vous souhaitez analyser de plus près les comportements de vos utilisateurs, vous pouvez générer manuellement des événements d'analyse personnalisés à l'aide du bouton logEvent ()
méthode du FirebaseAnalytics
classe. La méthode attend deux paramètres: une chaîne spécifiant le nom de l'événement personnalisé et une chaîne Paquet
contenant des détails sur l'événement sous la forme de paires clé-valeur.
Par exemple, si vous souhaitez générer un événement appelé my_custom_event chaque fois qu'un utilisateur clique sur un bouton spécifique, vous devrez ajouter le code suivant au gestionnaire de clic du bouton:
// Créer une instance de FirebaseAnalytics FirebaseAnalytics fa = FirebaseAnalytics.getInstance (this); // Créer un ensemble contenant des informations sur // l'événement analytique Bundle eventDetails = new Bundle (); eventDetails.putString ("mon_message", "cliquez sur ce bouton spécial"); // Journalise l'événement fa.logEvent ("my_custom_event", eventDetails);
Pour la plupart, les événements personnalisés ne peuvent pas être distingués des événements collectés automatiquement dans la console Firebase..
Notez que les noms d'événements sont sensibles à la casse. Par conséquent, il est judicieux de définir tous les noms d'événements en tant que chaînes constantes. Vous pouvez également utiliser des constantes de nom d’événement prédéfinies disponibles dans FirebaseAnalytics.Event
classe.
L'authentification de l'utilisateur est une exigence importante pour la plupart des applications Android actuelles. En étant en mesure d'authentifier vos utilisateurs en toute sécurité, et donc de les identifier de manière unique, vous pouvez leur offrir une expérience personnalisée en fonction de leurs intérêts et de leurs préférences. Vous pouvez également vous assurer qu'ils n'ont aucun problème à accéder à leurs données personnelles lors de l'utilisation de votre application à partir de plusieurs appareils..
Firebase Auth vous permet d’authentifier vos utilisateurs à l’aide de divers mécanismes de connexion. Dans ce tutoriel, je vais vous montrer comment permettre à vos utilisateurs de se connecter à votre application à l'aide de leurs adresses e-mail et mots de passe..
Pour pouvoir utiliser Firebase Auth dans votre projet Android Studio, vous devez ajouter les éléments suivants: compiler
dépendance à la app
modules build.gradle fichier.
compiler 'com.google.firebase: firebase-auth: 9.4.0'
Par défaut, Firebase n'autorise pas l'authentification de l'utilisateur. Par conséquent, vous devez activer manuellement l'authentification d'utilisateur basée sur un mot de passe dans la console Firebase. Pour ce faire, accédez à la Auth section et appuyez sur la Configurer la méthode de connexion bouton. Vous verrez maintenant une liste de tous les fournisseurs de connexion disponibles..
Choisir Mot de passe de l'email, activez-le et appuyez sur sauvegarder.
Avec l'authentification par mot de passe, les nouveaux utilisateurs doivent s'inscrire eux-mêmes en fournissant une adresse électronique unique et un mot de passe. Pour ajouter cette fonctionnalité à votre application, vous pouvez utiliser le createUserWithEmailAndPassword ()
méthode du FirebaseAuth
classe. Comme son nom l'indique, la méthode attend une adresse électronique et un mot de passe comme arguments.
Pour pouvoir déterminer le résultat de la createUserWithEmailAndPassword ()
méthode, vous devez ajouter un OnCompleteListener
à l'aide de la addOnCompleteListener ()
méthode. L'extrait de code suivant montre comment enregistrer un nouvel utilisateur et indique également si le processus d'inscription s'est terminé avec succès:
FirebaseAuth.getInstance () .createUserWithEmailAndPassword (emailAddress, password) .addOnCompleteListener (nouveau OnCompleteListener() @Override public void onComplete (@NonNull Task tâche) if (task.isSuccessful ()) // Utilisateur enregistré avec succès);
Notez qu'il est de votre responsabilité de valider les adresses électroniques et de vous assurer que les utilisateurs utilisent des mots de passe forts..
Vous pouvez consulter les adresses électroniques de tous les utilisateurs enregistrés avec succès dans Utilisateurs onglet de la console Firebase Auth section.
Après une inscription réussie, l'utilisateur est automatiquement connecté. L'utilisateur continue à rester connecté même si votre application redémarre. Néanmoins, votre application doit inclure un code permettant aux utilisateurs de se connecter manuellement à l'aide de l'adresse e-mail et du mot de passe spécifiés lors de l'enregistrement..
Pour connecter un utilisateur manuellement, vous devez utiliser le signInWithEmailAndPassword ()
méthode du FirebaseAuth
classe. La méthode attend une adresse électronique et un mot de passe comme seuls arguments, et renvoie une Tâche
objet. En ajoutant un OnCompleteListener
vous pouvez vérifier si la connexion a été complétée avec succès.
Pour éviter de vous connecter à un utilisateur déjà connecté, vous devez appeler le signInWithEmailAndPassword ()
méthode que si le courant FirebaseUser
est nul
.
L'extrait de code suivant vous montre comment connecter un utilisateur:
FirebaseAuth auth = FirebaseAuth.getInstance (); if (auth.getCurrentUser ()! = null) // Déjà connecté // Ne rien faire else auth.signInWithEmailAndPassword (emailAddress, password) .addOnCompleteListener (nouveau OnCompleteListener() @Override public void onComplete (@NonNull Task tâche) if (task.isSuccessful ()) // utilisateur connecté avec succès);
Pour déconnecter un utilisateur, vous pouvez simplement appeler le Déconnexion()
méthode du FirebaseAuth
classe.
FirebaseAuth.getInstance (). SignOut ();
L’une des fonctionnalités les plus puissantes de la plate-forme Firebase est sa base de données en temps réel. C’est pour une bonne raison: toutes les opérations d’écriture effectuées sur celle-ci sont immédiatement disponibles pour tous les clients qui l’observent. Avec une telle base de données, vous pouvez créer des applications qui permettent aux utilisateurs de basculer de manière transparente d'un appareil à un autre et de collaborer instantanément avec d'autres utilisateurs..
Avant d’utiliser la base de données temps réel, vous devez ajouter les éléments suivants: compiler
la dépendance à votre app
modules build.gradle fichier:
compiler 'com.google.firebase: firebase-database: 9.4.0'
Vous pouvez considérer la base de données temps réel comme un objet JSON. Cela signifie que vous pouvez y ajouter des paires clé-valeur, où les clés sont toujours des chaînes et les valeurs sont des primitives, des tableaux ou d'autres objets JSON..
Avant d’écrire dans la base de données temps réel, vous devez vous y référer à l’aide de la touche getInstance ()
méthode du FirebaseDatabase
classe. Vous pouvez ensuite obtenir une référence à n’importe quel chemin dans la base de données à l’aide de la touche getReference ()
méthode. Le chemin peut contenir soit une clé unique, soit plusieurs clés organisées hiérarchiquement..
Une fois que vous avez un Référence de la base de données
sur un chemin, vous pouvez définir sa valeur à l'aide de la touche setValue ()
méthode.
L'extrait de code suivant montre comment ajouter une simple paire clé-valeur à la base de données:
FirebaseDatabase db = FirebaseDatabase.getInstance (); DatabaseReference ref = db.getReference ("message"); // Key ref.setValue ("Ceci est un message de test"); // Valeur
En allant au Base de données section de la console Firebase, vous pouvez afficher toutes les données contenues dans la base de données en temps réel..
Pour lire une valeur de la base de données en temps réel, vous devez associer un observateur asynchrone à la clé ou au chemin associé. Plus précisément, vous devez joindre un ValueEventListener
à un Référence de la base de données
objet en utilisant le addValueEventListener ()
méthode.
le onDataChange ()
méthode du ValueEventListener
vous donne accès à un DataSnapshot
objet, dont getValue ()
méthode peut être utilisée pour récupérer la dernière valeur de la clé.
Par exemple, voici comment vous pouvez récupérer la valeur que nous avons définie à l'étape précédente:
FirebaseDatabase db = FirebaseDatabase.getInstance (); DatabaseReference ref = db.getReference ("message"); // Clé // Attacher le écouteur ref.addValueEventListener (new ValueEventListener () @Override public void onDataChange (DataSnapshot dataSnapshot) // Récupère la dernière valeur String message = dataSnapshot.getValue (String.class); @Override public void ( DatabaseError databaseError) // Traitement des erreurs);
Notez qu'une fois par ValueEventListener
est ajouté, son onDataChange ()
la méthode est déclenchée chaque fois que la valeur observée est modifiée.
La plate-forme Firebase élimine le besoin d'un serveur principal et vous permet de vous concentrer sur la création d'applications de meilleure qualité. Dans ce tutoriel, vous avez appris à l'utiliser pour ajouter des analyses, une authentification d'utilisateur et un stockage en temps réel de données dans le cloud à votre application Android..
Pour en savoir plus sur Firebase, vous pouvez vous reporter à sa documentation officielle. Vous pouvez également consulter notre didacticiel sur l'utilisation du rapport d'incident Firebase dans Android: