SlideShare une entreprise Scribd logo
1  sur  11
Télécharger pour lire hors ligne
Samir Akhrouf
Firebase
Université Mohamed Boudiaf de M’Sila
Faculté des Mathématique et de l’Informatique
Département d’Informatique
Année universitaire
2019-2020
2
Qu'est-ce que Firebase?
❑ Firebase est un ensemble de services d'hébergement pour
n'importe quel type d'application. Il propose d'héberger en
NoSQL et en temps réel des bases de données, du contenu, de
l'authentification sociale, et des notifications, ou encore des
services, tel que par exemple un serveur de communication
temps réel.
❑ Firebase est classé comme un programme de base de données
NoSQL, qui stocke les données dans des documents de type
JSON.
❑ Firebase fournit une base de données dans le cloud en temps
réel. Les créateurs d’applications pourront ainsi accéder à une
base de données propre à leur application et y gérer les
données en temps réel.
3
Principales caractéristiques
1. Authentification
Il prend en charge l'authentification à l'aide de mots de passe,
de numéros de téléphone, de Google, de Facebook, de Twitter,
etc. L'authentification Firebase (SDK) peut être utilisée pour
intégrer manuellement une ou plusieurs méthodes de
connexion dans une application.
2. Base de données en temps réel
Les données sont synchronisées sur tous les clients en temps
réel et restent disponibles même lorsqu'une application se
déconnecte.
3. Hébergement
Firebase offre un hébergement rapide pour une application
Web; le contenu est mis en cache dans les réseaux de diffusion
de contenu du monde entier.
4
4. Notifications
Les notifications peuvent être envoyées avec Firebase sans
codage supplémentaire.
Les utilisateurs peuvent démarrer gratuitement avec Firebase;
plus de détails peuvent être trouvés sur le site officiel.
5
I. Fonctionnalités
Base de données :
▪ JSON
➢ pas de requête riche
▪ Interface Web
▪ Passage à l’échelle automatique
▪ Sécurité
➢ 100% HTTPS
▪ API REST
Gestion des utilisateurs :
▪ Création d’utilisateurs avec mail+mot de passe
▪ Stockage sécurisé des données
▪ Nombreux protocole OAuth :
o Google
o Facebook
o Twitter
o ...
6
II. Installation
Déclarer la librairie Firebase dans le fichier build.gradle du projet :
dependencies {
compile 'com.firebase:firebase-client-android:2.4.0+'
}
On utilise Internet, il faut donc ajouter la permission Internet au
projet dans le manifest. Dans AndroidManifest.xml, ajoutez la ligne
suivante :
<uses-permission android:name="android.permission.INTERNET" />
III. Créons la base de données
On doit se rendre à l’adresse suivante
: https://www.firebase.com/signup pour nous inscrire. On va être
dirigé vers le tableau de bord « My First App » en « free plan ». l’url
de notre base de données se trouve juste en dessous.
7
IV. Utilisation
1. initialiser Firebase : dans la méthode onCreate(), ajoutez ceci :
Firebase.setAndroidContext(this);
2. Indiquer l’adresse de la base de données créée précédemment:
Firebase firebase = new
Firebase("https://l’url_de_votre_base.firebaseio.com/");
8
V. Ecriture de données
Il existe plusieurs méthodes pour écrire des données sur une base.
Firebase.child("label").setValue(« ma première donnée") ;
Ici on a stocké « ma première donnée » dans « label ».
Exemple :
Nous avons une classe Voiture, ses méthodes et ses attributs.
public class Voiture {
private String marque;
private String couleur;
public Voiture(){}
public Voiture(String vMarque, String vCouleur) {
this.marque = vMarque;
this.couleur = vCouleur; }
}
Voiture ford = new Voiture(‘Ford’, ‘rouge’);
Firebase voitureFord = firebase.child(‘voiture’).child(‘Ford’);
voitureFord.setValue(ford);
9
Map<String, Object> autreCouleur = new HashMap<String, Object>();
autreCouleur.put(‘couleur’, ‘bleue’);
ford.updateChildren(autreCouleur);
VI. Lecture de données
firebase.on(‘voiture’, function(snapshot) {
System.out.println(snapshot.getValue());
}, function(error) {
System.out.println("L’erreur suivante a été retournée : " +
error.code);
});
https://www.firebase.com/docs/
https://www.supinfo.com/articles/single/1462-firebase
https://www.firebase.com/customers/
https://www.firebase.com/blog/2015-03-05-private-backups-for-firebase-data.html
Références
10
Connectez-vous à Firebase
Assurez-vous d'abord d'avoir installé Google Repository version 26
ou supérieure, en procédant comme suit:
1. Cliquez sur Outils> Gestionnaire de SDK.
2. Cliquez sur l'onglet SDK Tools.
3. Cochez la case Google Repository, puis cliquez sur OK.
4. Cliquez sur OK pour installer.
5. Cliquez sur Arrière-plan pour terminer l'installation en
arrière-plan ou attendez la fin de l'installation et cliquez sur
Terminer.
Vous pouvez maintenant ouvrir et utiliser la fenêtre Assistant dans
Android Studio en procédant comme suit:
11
1. Cliquez sur Outils> Firebase
pour ouvrir la fenêtre
Assistant.
2. Cliquez pour développer l'une
des fonctionnalités
répertoriées (par exemple,
Analytics), puis cliquez sur le
didacticiel de mise en route
pour vous connecter à
Firebase et ajouter le code
nécessaire à votre application.
Pour plus d'informations sur
l'utilisation des services
Firebase, consultez la
documentation Firebase.

Contenu connexe

Similaire à Firebase.pdf

Fadi hchifa CV
Fadi hchifa CVFadi hchifa CV
Fadi hchifa CVFadiHchifa
 
Mobyview : Drupal Meetup, Paris, 17 Sep 2015
Mobyview : Drupal Meetup, Paris, 17 Sep 2015Mobyview : Drupal Meetup, Paris, 17 Sep 2015
Mobyview : Drupal Meetup, Paris, 17 Sep 2015Alex Leroy Deval
 
Votre première App SharePoint pour Office 365 avec Visual Studio !
Votre première App SharePoint pour Office 365 avec Visual Studio !Votre première App SharePoint pour Office 365 avec Visual Studio !
Votre première App SharePoint pour Office 365 avec Visual Studio !Gilles Pommier
 
Débuter avec phonegap (APACHE CORDOVA) dans eclipse pour android
Débuter avec phonegap (APACHE CORDOVA) dans eclipse pour androidDébuter avec phonegap (APACHE CORDOVA) dans eclipse pour android
Débuter avec phonegap (APACHE CORDOVA) dans eclipse pour androidBosco Basabana
 
Sayeh hiba-karaa-eya-ferjani-maroua-hamzaoui-balkiss-sys-complexes
Sayeh hiba-karaa-eya-ferjani-maroua-hamzaoui-balkiss-sys-complexesSayeh hiba-karaa-eya-ferjani-maroua-hamzaoui-balkiss-sys-complexes
Sayeh hiba-karaa-eya-ferjani-maroua-hamzaoui-balkiss-sys-complexesSayehHiba1
 
Architecturez vos applications mobiles avec Azure et Xamarin
Architecturez vos applications mobiles avec Azure et XamarinArchitecturez vos applications mobiles avec Azure et Xamarin
Architecturez vos applications mobiles avec Azure et XamarinThierry Buisson
 
Visual Studio 2013 / SharePoint 2013 duo de choc de 2010 à 2013 en un clin d’œil
Visual Studio 2013 / SharePoint 2013 duo de choc de 2010 à 2013 en un clin d’œilVisual Studio 2013 / SharePoint 2013 duo de choc de 2010 à 2013 en un clin d’œil
Visual Studio 2013 / SharePoint 2013 duo de choc de 2010 à 2013 en un clin d’œilMicrosoft Technet France
 
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniterAtsé François-Xavier KOBON
 
Cloud vNext [#CloudAccelerate 13/06/2014 @ IBM CC Paris]
Cloud vNext [#CloudAccelerate 13/06/2014 @ IBM CC Paris]Cloud vNext [#CloudAccelerate 13/06/2014 @ IBM CC Paris]
Cloud vNext [#CloudAccelerate 13/06/2014 @ IBM CC Paris]IBM France PME-ETI
 
Présentation GWT et HTML 5 pour l'Offline
Présentation GWT et HTML 5 pour l'OfflinePrésentation GWT et HTML 5 pour l'Offline
Présentation GWT et HTML 5 pour l'OfflineDNG Consulting
 
Développez votre application Facebook avec Windows Azure
Développez votre application Facebook avec Windows AzureDéveloppez votre application Facebook avec Windows Azure
Développez votre application Facebook avec Windows AzureMicrosoft
 
Sujets PFE 2019 - Advyteam
Sujets PFE 2019 - AdvyteamSujets PFE 2019 - Advyteam
Sujets PFE 2019 - AdvyteamAdvyteam
 
2014 03-26-appdevseries-session3-interactingwiththedatabase-fr-phpapp01
2014 03-26-appdevseries-session3-interactingwiththedatabase-fr-phpapp012014 03-26-appdevseries-session3-interactingwiththedatabase-fr-phpapp01
2014 03-26-appdevseries-session3-interactingwiththedatabase-fr-phpapp01MongoDB
 
L'histoire d'html5 pour les développeurs windows phone 8
L'histoire d'html5 pour les développeurs windows phone 8L'histoire d'html5 pour les développeurs windows phone 8
L'histoire d'html5 pour les développeurs windows phone 8davrous
 
Spécifications de webservices avec un seul outil
Spécifications de webservices avec un seul outilSpécifications de webservices avec un seul outil
Spécifications de webservices avec un seul outilFabernovel
 
Atelier hadoop-single-sign-on
Atelier hadoop-single-sign-onAtelier hadoop-single-sign-on
Atelier hadoop-single-sign-onsahar dridi
 

Similaire à Firebase.pdf (20)

Fadi hchifa CV
Fadi hchifa CVFadi hchifa CV
Fadi hchifa CV
 
Mobyview : Drupal Meetup, Paris, 17 Sep 2015
Mobyview : Drupal Meetup, Paris, 17 Sep 2015Mobyview : Drupal Meetup, Paris, 17 Sep 2015
Mobyview : Drupal Meetup, Paris, 17 Sep 2015
 
Votre première App SharePoint pour Office 365 avec Visual Studio !
Votre première App SharePoint pour Office 365 avec Visual Studio !Votre première App SharePoint pour Office 365 avec Visual Studio !
Votre première App SharePoint pour Office 365 avec Visual Studio !
 
Débuter avec phonegap (APACHE CORDOVA) dans eclipse pour android
Débuter avec phonegap (APACHE CORDOVA) dans eclipse pour androidDébuter avec phonegap (APACHE CORDOVA) dans eclipse pour android
Débuter avec phonegap (APACHE CORDOVA) dans eclipse pour android
 
[Tuto] Big datatrack : Web Tracker
[Tuto] Big datatrack : Web Tracker[Tuto] Big datatrack : Web Tracker
[Tuto] Big datatrack : Web Tracker
 
Azure Mesh Et Surface
Azure Mesh Et SurfaceAzure Mesh Et Surface
Azure Mesh Et Surface
 
Sayeh hiba-karaa-eya-ferjani-maroua-hamzaoui-balkiss-sys-complexes
Sayeh hiba-karaa-eya-ferjani-maroua-hamzaoui-balkiss-sys-complexesSayeh hiba-karaa-eya-ferjani-maroua-hamzaoui-balkiss-sys-complexes
Sayeh hiba-karaa-eya-ferjani-maroua-hamzaoui-balkiss-sys-complexes
 
Architecturez vos applications mobiles avec Azure et Xamarin
Architecturez vos applications mobiles avec Azure et XamarinArchitecturez vos applications mobiles avec Azure et Xamarin
Architecturez vos applications mobiles avec Azure et Xamarin
 
Visual Studio 2013 / SharePoint 2013 duo de choc de 2010 à 2013 en un clin d’œil
Visual Studio 2013 / SharePoint 2013 duo de choc de 2010 à 2013 en un clin d’œilVisual Studio 2013 / SharePoint 2013 duo de choc de 2010 à 2013 en un clin d’œil
Visual Studio 2013 / SharePoint 2013 duo de choc de 2010 à 2013 en un clin d’œil
 
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
 
Cours cordova & REST
Cours cordova & RESTCours cordova & REST
Cours cordova & REST
 
Cloud vNext [#CloudAccelerate 13/06/2014 @ IBM CC Paris]
Cloud vNext [#CloudAccelerate 13/06/2014 @ IBM CC Paris]Cloud vNext [#CloudAccelerate 13/06/2014 @ IBM CC Paris]
Cloud vNext [#CloudAccelerate 13/06/2014 @ IBM CC Paris]
 
Présentation GWT et HTML 5 pour l'Offline
Présentation GWT et HTML 5 pour l'OfflinePrésentation GWT et HTML 5 pour l'Offline
Présentation GWT et HTML 5 pour l'Offline
 
Développez votre application Facebook avec Windows Azure
Développez votre application Facebook avec Windows AzureDéveloppez votre application Facebook avec Windows Azure
Développez votre application Facebook avec Windows Azure
 
Sujets PFE 2019 - Advyteam
Sujets PFE 2019 - AdvyteamSujets PFE 2019 - Advyteam
Sujets PFE 2019 - Advyteam
 
2014 03-26-appdevseries-session3-interactingwiththedatabase-fr-phpapp01
2014 03-26-appdevseries-session3-interactingwiththedatabase-fr-phpapp012014 03-26-appdevseries-session3-interactingwiththedatabase-fr-phpapp01
2014 03-26-appdevseries-session3-interactingwiththedatabase-fr-phpapp01
 
L'histoire d'html5 pour les développeurs windows phone 8
L'histoire d'html5 pour les développeurs windows phone 8L'histoire d'html5 pour les développeurs windows phone 8
L'histoire d'html5 pour les développeurs windows phone 8
 
Spécifications de webservices avec un seul outil
Spécifications de webservices avec un seul outilSpécifications de webservices avec un seul outil
Spécifications de webservices avec un seul outil
 
Liste des stages 07 02 2017
Liste des stages 07 02 2017Liste des stages 07 02 2017
Liste des stages 07 02 2017
 
Atelier hadoop-single-sign-on
Atelier hadoop-single-sign-onAtelier hadoop-single-sign-on
Atelier hadoop-single-sign-on
 

Plus de RihabBENLAMINE

presentationatelierphpprt2-140314143938-phpapp02.pdf
presentationatelierphpprt2-140314143938-phpapp02.pdfpresentationatelierphpprt2-140314143938-phpapp02.pdf
presentationatelierphpprt2-140314143938-phpapp02.pdfRihabBENLAMINE
 
Tutoriel-PHP-Introduction-à-la-POoooooooooooO.pdf
Tutoriel-PHP-Introduction-à-la-POoooooooooooO.pdfTutoriel-PHP-Introduction-à-la-POoooooooooooO.pdf
Tutoriel-PHP-Introduction-à-la-POoooooooooooO.pdfRihabBENLAMINE
 
CM_PHP_PDOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.pdf
CM_PHP_PDOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.pdfCM_PHP_PDOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.pdf
CM_PHP_PDOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.pdfRihabBENLAMINE
 
10_interfacesjavaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.pdf
10_interfacesjavaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.pdf10_interfacesjavaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.pdf
10_interfacesjavaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.pdfRihabBENLAMINE
 
coursphp-chap3-230321082859-121d6678.pptx
coursphp-chap3-230321082859-121d6678.pptxcoursphp-chap3-230321082859-121d6678.pptx
coursphp-chap3-230321082859-121d6678.pptxRihabBENLAMINE
 
Cours3-PHPfgdwfwdffhddfbwdfwdfwdfwdfwfw.pdf
Cours3-PHPfgdwfwdffhddfbwdfwdfwdfwdfwfw.pdfCours3-PHPfgdwfwdffhddfbwdfwdfwdfwdfwfw.pdf
Cours3-PHPfgdwfwdffhddfbwdfwdfwdfwdfwfw.pdfRihabBENLAMINE
 
Virtualisation & Cloud. Cloud Computing. Iset Siliana RSI3..pdf
Virtualisation & Cloud. Cloud Computing. Iset Siliana RSI3..pdfVirtualisation & Cloud. Cloud Computing. Iset Siliana RSI3..pdf
Virtualisation & Cloud. Cloud Computing. Iset Siliana RSI3..pdfRihabBENLAMINE
 
416769859360_chap2fondementdesreseaux2023.pdf
416769859360_chap2fondementdesreseaux2023.pdf416769859360_chap2fondementdesreseaux2023.pdf
416769859360_chap2fondementdesreseaux2023.pdfRihabBENLAMINE
 
Interace Utilisateur.pdf
Interace Utilisateur.pdfInterace Utilisateur.pdf
Interace Utilisateur.pdfRihabBENLAMINE
 
Bases de données sous Android.pdf
Bases de données sous Android.pdfBases de données sous Android.pdf
Bases de données sous Android.pdfRihabBENLAMINE
 
Environnement Android.pdf
Environnement Android.pdfEnvironnement Android.pdf
Environnement Android.pdfRihabBENLAMINE
 
coursphp-230411142526-784b67e9.pdf
coursphp-230411142526-784b67e9.pdfcoursphp-230411142526-784b67e9.pdf
coursphp-230411142526-784b67e9.pdfRihabBENLAMINE
 
0519-pdf-php-bases-initiation.pdf
0519-pdf-php-bases-initiation.pdf0519-pdf-php-bases-initiation.pdf
0519-pdf-php-bases-initiation.pdfRihabBENLAMINE
 
introAndroid_2023_V6.5.2pp1-162.pdf
introAndroid_2023_V6.5.2pp1-162.pdfintroAndroid_2023_V6.5.2pp1-162.pdf
introAndroid_2023_V6.5.2pp1-162.pdfRihabBENLAMINE
 
016834638650_suitechap1.pptx
016834638650_suitechap1.pptx016834638650_suitechap1.pptx
016834638650_suitechap1.pptxRihabBENLAMINE
 
Chapitre 04-B - Langages de consultation.pdf
Chapitre 04-B - Langages de consultation.pdfChapitre 04-B - Langages de consultation.pdf
Chapitre 04-B - Langages de consultation.pdfRihabBENLAMINE
 
p01b_portelogique_boole.pdf
p01b_portelogique_boole.pdfp01b_portelogique_boole.pdf
p01b_portelogique_boole.pdfRihabBENLAMINE
 

Plus de RihabBENLAMINE (20)

presentationatelierphpprt2-140314143938-phpapp02.pdf
presentationatelierphpprt2-140314143938-phpapp02.pdfpresentationatelierphpprt2-140314143938-phpapp02.pdf
presentationatelierphpprt2-140314143938-phpapp02.pdf
 
Tutoriel-PHP-Introduction-à-la-POoooooooooooO.pdf
Tutoriel-PHP-Introduction-à-la-POoooooooooooO.pdfTutoriel-PHP-Introduction-à-la-POoooooooooooO.pdf
Tutoriel-PHP-Introduction-à-la-POoooooooooooO.pdf
 
CM_PHP_PDOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.pdf
CM_PHP_PDOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.pdfCM_PHP_PDOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.pdf
CM_PHP_PDOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.pdf
 
10_interfacesjavaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.pdf
10_interfacesjavaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.pdf10_interfacesjavaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.pdf
10_interfacesjavaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.pdf
 
coursphp-chap3-230321082859-121d6678.pptx
coursphp-chap3-230321082859-121d6678.pptxcoursphp-chap3-230321082859-121d6678.pptx
coursphp-chap3-230321082859-121d6678.pptx
 
Cours3-PHPfgdwfwdffhddfbwdfwdfwdfwdfwfw.pdf
Cours3-PHPfgdwfwdffhddfbwdfwdfwdfwdfwfw.pdfCours3-PHPfgdwfwdffhddfbwdfwdfwdfwdfwfw.pdf
Cours3-PHPfgdwfwdffhddfbwdfwdfwdfwdfwfw.pdf
 
Virtualisation & Cloud. Cloud Computing. Iset Siliana RSI3..pdf
Virtualisation & Cloud. Cloud Computing. Iset Siliana RSI3..pdfVirtualisation & Cloud. Cloud Computing. Iset Siliana RSI3..pdf
Virtualisation & Cloud. Cloud Computing. Iset Siliana RSI3..pdf
 
416769859360_chap2fondementdesreseaux2023.pdf
416769859360_chap2fondementdesreseaux2023.pdf416769859360_chap2fondementdesreseaux2023.pdf
416769859360_chap2fondementdesreseaux2023.pdf
 
Interace Utilisateur.pdf
Interace Utilisateur.pdfInterace Utilisateur.pdf
Interace Utilisateur.pdf
 
Bases de données sous Android.pdf
Bases de données sous Android.pdfBases de données sous Android.pdf
Bases de données sous Android.pdf
 
Les Activités.pdf
Les Activités.pdfLes Activités.pdf
Les Activités.pdf
 
Environnement Android.pdf
Environnement Android.pdfEnvironnement Android.pdf
Environnement Android.pdf
 
coursphp-230411142526-784b67e9.pdf
coursphp-230411142526-784b67e9.pdfcoursphp-230411142526-784b67e9.pdf
coursphp-230411142526-784b67e9.pdf
 
0519-pdf-php-bases-initiation.pdf
0519-pdf-php-bases-initiation.pdf0519-pdf-php-bases-initiation.pdf
0519-pdf-php-bases-initiation.pdf
 
introAndroid_2023_V6.5.2pp1-162.pdf
introAndroid_2023_V6.5.2pp1-162.pdfintroAndroid_2023_V6.5.2pp1-162.pdf
introAndroid_2023_V6.5.2pp1-162.pdf
 
016834638650_suitechap1.pptx
016834638650_suitechap1.pptx016834638650_suitechap1.pptx
016834638650_suitechap1.pptx
 
PHP_intro.pdf
PHP_intro.pdfPHP_intro.pdf
PHP_intro.pdf
 
Chapitre 04-B - Langages de consultation.pdf
Chapitre 04-B - Langages de consultation.pdfChapitre 04-B - Langages de consultation.pdf
Chapitre 04-B - Langages de consultation.pdf
 
chapitre-2.pptx.pdf
chapitre-2.pptx.pdfchapitre-2.pptx.pdf
chapitre-2.pptx.pdf
 
p01b_portelogique_boole.pdf
p01b_portelogique_boole.pdfp01b_portelogique_boole.pdf
p01b_portelogique_boole.pdf
 

Firebase.pdf

  • 1. Samir Akhrouf Firebase Université Mohamed Boudiaf de M’Sila Faculté des Mathématique et de l’Informatique Département d’Informatique Année universitaire 2019-2020
  • 2. 2 Qu'est-ce que Firebase? ❑ Firebase est un ensemble de services d'hébergement pour n'importe quel type d'application. Il propose d'héberger en NoSQL et en temps réel des bases de données, du contenu, de l'authentification sociale, et des notifications, ou encore des services, tel que par exemple un serveur de communication temps réel. ❑ Firebase est classé comme un programme de base de données NoSQL, qui stocke les données dans des documents de type JSON. ❑ Firebase fournit une base de données dans le cloud en temps réel. Les créateurs d’applications pourront ainsi accéder à une base de données propre à leur application et y gérer les données en temps réel.
  • 3. 3 Principales caractéristiques 1. Authentification Il prend en charge l'authentification à l'aide de mots de passe, de numéros de téléphone, de Google, de Facebook, de Twitter, etc. L'authentification Firebase (SDK) peut être utilisée pour intégrer manuellement une ou plusieurs méthodes de connexion dans une application. 2. Base de données en temps réel Les données sont synchronisées sur tous les clients en temps réel et restent disponibles même lorsqu'une application se déconnecte. 3. Hébergement Firebase offre un hébergement rapide pour une application Web; le contenu est mis en cache dans les réseaux de diffusion de contenu du monde entier.
  • 4. 4 4. Notifications Les notifications peuvent être envoyées avec Firebase sans codage supplémentaire. Les utilisateurs peuvent démarrer gratuitement avec Firebase; plus de détails peuvent être trouvés sur le site officiel.
  • 5. 5 I. Fonctionnalités Base de données : ▪ JSON ➢ pas de requête riche ▪ Interface Web ▪ Passage à l’échelle automatique ▪ Sécurité ➢ 100% HTTPS ▪ API REST Gestion des utilisateurs : ▪ Création d’utilisateurs avec mail+mot de passe ▪ Stockage sécurisé des données ▪ Nombreux protocole OAuth : o Google o Facebook o Twitter o ...
  • 6. 6 II. Installation Déclarer la librairie Firebase dans le fichier build.gradle du projet : dependencies { compile 'com.firebase:firebase-client-android:2.4.0+' } On utilise Internet, il faut donc ajouter la permission Internet au projet dans le manifest. Dans AndroidManifest.xml, ajoutez la ligne suivante : <uses-permission android:name="android.permission.INTERNET" /> III. Créons la base de données On doit se rendre à l’adresse suivante : https://www.firebase.com/signup pour nous inscrire. On va être dirigé vers le tableau de bord « My First App » en « free plan ». l’url de notre base de données se trouve juste en dessous.
  • 7. 7 IV. Utilisation 1. initialiser Firebase : dans la méthode onCreate(), ajoutez ceci : Firebase.setAndroidContext(this); 2. Indiquer l’adresse de la base de données créée précédemment: Firebase firebase = new Firebase("https://l’url_de_votre_base.firebaseio.com/");
  • 8. 8 V. Ecriture de données Il existe plusieurs méthodes pour écrire des données sur une base. Firebase.child("label").setValue(« ma première donnée") ; Ici on a stocké « ma première donnée » dans « label ». Exemple : Nous avons une classe Voiture, ses méthodes et ses attributs. public class Voiture { private String marque; private String couleur; public Voiture(){} public Voiture(String vMarque, String vCouleur) { this.marque = vMarque; this.couleur = vCouleur; } } Voiture ford = new Voiture(‘Ford’, ‘rouge’); Firebase voitureFord = firebase.child(‘voiture’).child(‘Ford’); voitureFord.setValue(ford);
  • 9. 9 Map<String, Object> autreCouleur = new HashMap<String, Object>(); autreCouleur.put(‘couleur’, ‘bleue’); ford.updateChildren(autreCouleur); VI. Lecture de données firebase.on(‘voiture’, function(snapshot) { System.out.println(snapshot.getValue()); }, function(error) { System.out.println("L’erreur suivante a été retournée : " + error.code); }); https://www.firebase.com/docs/ https://www.supinfo.com/articles/single/1462-firebase https://www.firebase.com/customers/ https://www.firebase.com/blog/2015-03-05-private-backups-for-firebase-data.html Références
  • 10. 10 Connectez-vous à Firebase Assurez-vous d'abord d'avoir installé Google Repository version 26 ou supérieure, en procédant comme suit: 1. Cliquez sur Outils> Gestionnaire de SDK. 2. Cliquez sur l'onglet SDK Tools. 3. Cochez la case Google Repository, puis cliquez sur OK. 4. Cliquez sur OK pour installer. 5. Cliquez sur Arrière-plan pour terminer l'installation en arrière-plan ou attendez la fin de l'installation et cliquez sur Terminer. Vous pouvez maintenant ouvrir et utiliser la fenêtre Assistant dans Android Studio en procédant comme suit:
  • 11. 11 1. Cliquez sur Outils> Firebase pour ouvrir la fenêtre Assistant. 2. Cliquez pour développer l'une des fonctionnalités répertoriées (par exemple, Analytics), puis cliquez sur le didacticiel de mise en route pour vous connecter à Firebase et ajouter le code nécessaire à votre application. Pour plus d'informations sur l'utilisation des services Firebase, consultez la documentation Firebase.