Top Banner
Firebase Ahcène Bounceur PROGRAMMATION ANDROID Chapitre 9 Partie 9.2
44

Android9 2 Firebase - labsticc.univ-brest.frlabsticc.univ-brest.fr/~bounceur/cours_pdf/android/Android9_2_Firebase.pdf · Ajouter un projet Firebase 1. Donner un nom au projet 2.

May 25, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Android9 2 Firebase - labsticc.univ-brest.frlabsticc.univ-brest.fr/~bounceur/cours_pdf/android/Android9_2_Firebase.pdf · Ajouter un projet Firebase 1. Donner un nom au projet 2.

Firebase

Ahcène Bounceur

PROGRAMMATION ANDROID

Chapitre 9 Partie 9.2

Page 2: Android9 2 Firebase - labsticc.univ-brest.frlabsticc.univ-brest.fr/~bounceur/cours_pdf/android/Android9_2_Firebase.pdf · Ajouter un projet Firebase 1. Donner un nom au projet 2.

Projet Android

•  Le projet Android se crée normalement •  Nous avons besoin du nom de son package par

la suite

Page 3: Android9 2 Firebase - labsticc.univ-brest.frlabsticc.univ-brest.fr/~bounceur/cours_pdf/android/Android9_2_Firebase.pdf · Ajouter un projet Firebase 1. Donner un nom au projet 2.

Projet Firebase

•  Il faut être en possession d’un compte google •  Visiter le site Firebase :

http://firebase.google.com •  Se connecter avec le compte google •  Accéder à la console •  Ajouter un projet

Page 4: Android9 2 Firebase - labsticc.univ-brest.frlabsticc.univ-brest.fr/~bounceur/cours_pdf/android/Android9_2_Firebase.pdf · Ajouter un projet Firebase 1. Donner un nom au projet 2.

Ajouter un projet Firebase

1.  Donner un nom au projet 2.  Accepter les conditions et créer le projet 3.  Le projet est créé

1

2

3

Page 5: Android9 2 Firebase - labsticc.univ-brest.frlabsticc.univ-brest.fr/~bounceur/cours_pdf/android/Android9_2_Firebase.pdf · Ajouter un projet Firebase 1. Donner un nom au projet 2.

Relation Android-Firebase

Page 6: Android9 2 Firebase - labsticc.univ-brest.frlabsticc.univ-brest.fr/~bounceur/cours_pdf/android/Android9_2_Firebase.pdf · Ajouter un projet Firebase 1. Donner un nom au projet 2.

Relation Android-Firebase Package

& Certificat de

Signature SHA-1

Package

Certificat de Signature SHA-1

Page 7: Android9 2 Firebase - labsticc.univ-brest.frlabsticc.univ-brest.fr/~bounceur/cours_pdf/android/Android9_2_Firebase.pdf · Ajouter un projet Firebase 1. Donner un nom au projet 2.

Relation Android-Firebase

•  Télécharger le fichier de configuration google-services.json

Copier le fichier téléchargé

Page 8: Android9 2 Firebase - labsticc.univ-brest.frlabsticc.univ-brest.fr/~bounceur/cours_pdf/android/Android9_2_Firebase.pdf · Ajouter un projet Firebase 1. Donner un nom au projet 2.

Relation Android-Firebase

•  Ajoutez le dans le dossier app de votre projet

Coller le fichier téléchargé

Passer en mode Project

Page 9: Android9 2 Firebase - labsticc.univ-brest.frlabsticc.univ-brest.fr/~bounceur/cours_pdf/android/Android9_2_Firebase.pdf · Ajouter un projet Firebase 1. Donner un nom au projet 2.

BASE DE DONNÉES TEMPS RÉEL

Page 10: Android9 2 Firebase - labsticc.univ-brest.frlabsticc.univ-brest.fr/~bounceur/cours_pdf/android/Android9_2_Firebase.pdf · Ajouter un projet Firebase 1. Donner un nom au projet 2.

Créer une base de données

Ensuite choisissez le cloud européen

Page 11: Android9 2 Firebase - labsticc.univ-brest.frlabsticc.univ-brest.fr/~bounceur/cours_pdf/android/Android9_2_Firebase.pdf · Ajouter un projet Firebase 1. Donner un nom au projet 2.

Créer une base de données

Page 12: Android9 2 Firebase - labsticc.univ-brest.frlabsticc.univ-brest.fr/~bounceur/cours_pdf/android/Android9_2_Firebase.pdf · Ajouter un projet Firebase 1. Donner un nom au projet 2.

Créer une base de données

Page 13: Android9 2 Firebase - labsticc.univ-brest.frlabsticc.univ-brest.fr/~bounceur/cours_pdf/android/Android9_2_Firebase.pdf · Ajouter un projet Firebase 1. Donner un nom au projet 2.

Créer une base de données

1

2

3

Page 14: Android9 2 Firebase - labsticc.univ-brest.frlabsticc.univ-brest.fr/~bounceur/cours_pdf/android/Android9_2_Firebase.pdf · Ajouter un projet Firebase 1. Donner un nom au projet 2.

PRÉPARER LE PROJET

Page 15: Android9 2 Firebase - labsticc.univ-brest.frlabsticc.univ-brest.fr/~bounceur/cours_pdf/android/Android9_2_Firebase.pdf · Ajouter un projet Firebase 1. Donner un nom au projet 2.

Préparer le projet

•  Revenir au menu principal de Firebase (cliquer sur Accéder à la documentation)

Page 16: Android9 2 Firebase - labsticc.univ-brest.frlabsticc.univ-brest.fr/~bounceur/cours_pdf/android/Android9_2_Firebase.pdf · Ajouter un projet Firebase 1. Donner un nom au projet 2.

Préparer le projet

•  Cliquer sur Get started for Android (cette page montrent les lignes à ajouter dans le projet)

Page 17: Android9 2 Firebase - labsticc.univ-brest.frlabsticc.univ-brest.fr/~bounceur/cours_pdf/android/Android9_2_Firebase.pdf · Ajouter un projet Firebase 1. Donner un nom au projet 2.

Ajouter Firebase au projet

•  Ajouter cette ligne dans le fichier build.gradle buildscript { // ... dependencies { // ... classpath 'com.google.gms:google-services:4.2.0' }}

allprojects { // ... repositories { // ... google() }}

Page 18: Android9 2 Firebase - labsticc.univ-brest.frlabsticc.univ-brest.fr/~bounceur/cours_pdf/android/Android9_2_Firebase.pdf · Ajouter un projet Firebase 1. Donner un nom au projet 2.

Ajouter Firebase au projet

•  Ajouter cette ligne dans le fichier build.gradle apply plugin: 'com.android.application'

android { // ...}

dependencies { // ... implementation 'com.google.firebase:firebase-core:16.0.4'}

apply plugin: 'com.google.gms.google-services'

Page 19: Android9 2 Firebase - labsticc.univ-brest.frlabsticc.univ-brest.fr/~bounceur/cours_pdf/android/Android9_2_Firebase.pdf · Ajouter un projet Firebase 1. Donner un nom au projet 2.

Synchronisez le projet

Synchronisez

Page 20: Android9 2 Firebase - labsticc.univ-brest.frlabsticc.univ-brest.fr/~bounceur/cours_pdf/android/Android9_2_Firebase.pdf · Ajouter un projet Firebase 1. Donner un nom au projet 2.

PROGRAMMATION

Page 21: Android9 2 Firebase - labsticc.univ-brest.frlabsticc.univ-brest.fr/~bounceur/cours_pdf/android/Android9_2_Firebase.pdf · Ajouter un projet Firebase 1. Donner un nom au projet 2.

Préparer le programme

Page 22: Android9 2 Firebase - labsticc.univ-brest.frlabsticc.univ-brest.fr/~bounceur/cours_pdf/android/Android9_2_Firebase.pdf · Ajouter un projet Firebase 1. Donner un nom au projet 2.

Ajouter la BDD RT au projet

•  Ajouter cette ligne dans le fichier build.gradle apply plugin: 'com.android.application'

android { // ...}

dependencies { // ... implementation 'com.google.firebase:firebase-core:16.0.4' implementation 'com.google.firebase:firebase-database:16.0.4'}apply plugin: 'com.google.gms.google-services'

Synchronisez

Page 23: Android9 2 Firebase - labsticc.univ-brest.frlabsticc.univ-brest.fr/~bounceur/cours_pdf/android/Android9_2_Firebase.pdf · Ajouter un projet Firebase 1. Donner un nom au projet 2.

Ecrire dans la BDD RT FirebaseDatabase database = FirebaseDatabase.getInstance();

DatabaseReference myRef = database.getReference("message");

myRef.setValue("Je suis a l'UBO!");

Page 24: Android9 2 Firebase - labsticc.univ-brest.frlabsticc.univ-brest.fr/~bounceur/cours_pdf/android/Android9_2_Firebase.pdf · Ajouter un projet Firebase 1. Donner un nom au projet 2.

Lire de la BDD RT myRef.addValueEventListener(new ValueEventListener() { @Override public void onDataChange(DataSnapshot dataSnapshot) {

String value = dataSnapshot.getValue(String.class);Log.d(TAG, "Value is: " + value);

}

@Override public void onCancelled(DatabaseError error) {

Log.w(TAG, "Erreur :", error.toException()); }});

Page 25: Android9 2 Firebase - labsticc.univ-brest.frlabsticc.univ-brest.fr/~bounceur/cours_pdf/android/Android9_2_Firebase.pdf · Ajouter un projet Firebase 1. Donner un nom au projet 2.

Exemple FirebaseDatabase database = FirebaseDatabase.getInstance();DatabaseReference client = database.getReference();

Map<String, Object> map1 = new HashMap<String, Object>();map1.put("1", "Ines");map1.put("2", "Lina");

ref.child("client").child("01").child("nom").setValue("Toto");ref.child("client").child("01").child("prenom").setValue("Alibaba");ref.child("client").child("01").child("tel").setValue("0123456789");ref.child("client").child("01").child("marie").setValue(true);ref.child("client").child("01").child("taille").setValue(1.75);ref.child("client").child("01").child("enfants").setValue(map1);ref.child("client").child("02").child("nom").setValue("Coucou");ref.child("client").child("02").child("prenom").setValue("Ali");ref.child("client").child("02").child("tel").setValue("0611223344");ref.child("client").child("02").child("marie").setValue(false);ref.child("client").child("02").child("taille").setValue(1.64);ref.child("client").child("02").child("enfants").setValue(null);

Page 26: Android9 2 Firebase - labsticc.univ-brest.frlabsticc.univ-brest.fr/~bounceur/cours_pdf/android/Android9_2_Firebase.pdf · Ajouter un projet Firebase 1. Donner un nom au projet 2.

Exemple

Page 27: Android9 2 Firebase - labsticc.univ-brest.frlabsticc.univ-brest.fr/~bounceur/cours_pdf/android/Android9_2_Firebase.pdf · Ajouter un projet Firebase 1. Donner un nom au projet 2.

Exemple

FirebaseDatabase database = FirebaseDatabase.getInstance();DatabaseReference client = database.getReference("client");

client.addValueEventListener(new ValueEventListener() {@Overridepublic void onDataChange(DataSnapshot dataSnapshot) {

DataSnapshot ds = dataSnapshot.child("02").child("nom") ;String value = ds.getValue(String.class);Log.d(TAG, value);

}

@Overridepublic void onCancelled(DatabaseError error) {

Log.w(TAG, "Failed to read value.", error.toException());}

});

Page 28: Android9 2 Firebase - labsticc.univ-brest.frlabsticc.univ-brest.fr/~bounceur/cours_pdf/android/Android9_2_Firebase.pdf · Ajouter un projet Firebase 1. Donner un nom au projet 2.

L’AUTHENTIFICATION

Page 29: Android9 2 Firebase - labsticc.univ-brest.frlabsticc.univ-brest.fr/~bounceur/cours_pdf/android/Android9_2_Firebase.pdf · Ajouter un projet Firebase 1. Donner un nom au projet 2.

Configurer la connexion

Page 30: Android9 2 Firebase - labsticc.univ-brest.frlabsticc.univ-brest.fr/~bounceur/cours_pdf/android/Android9_2_Firebase.pdf · Ajouter un projet Firebase 1. Donner un nom au projet 2.

Configurer la connexion

Page 31: Android9 2 Firebase - labsticc.univ-brest.frlabsticc.univ-brest.fr/~bounceur/cours_pdf/android/Android9_2_Firebase.pdf · Ajouter un projet Firebase 1. Donner un nom au projet 2.

Configurer la connexion

Page 32: Android9 2 Firebase - labsticc.univ-brest.frlabsticc.univ-brest.fr/~bounceur/cours_pdf/android/Android9_2_Firebase.pdf · Ajouter un projet Firebase 1. Donner un nom au projet 2.

Configurer la connexion

Page 33: Android9 2 Firebase - labsticc.univ-brest.frlabsticc.univ-brest.fr/~bounceur/cours_pdf/android/Android9_2_Firebase.pdf · Ajouter un projet Firebase 1. Donner un nom au projet 2.

Configurer la connexion

Page 34: Android9 2 Firebase - labsticc.univ-brest.frlabsticc.univ-brest.fr/~bounceur/cours_pdf/android/Android9_2_Firebase.pdf · Ajouter un projet Firebase 1. Donner un nom au projet 2.

Configurer la connexion

Page 35: Android9 2 Firebase - labsticc.univ-brest.frlabsticc.univ-brest.fr/~bounceur/cours_pdf/android/Android9_2_Firebase.pdf · Ajouter un projet Firebase 1. Donner un nom au projet 2.

Ajouter l’Authentification au projet

Page 36: Android9 2 Firebase - labsticc.univ-brest.frlabsticc.univ-brest.fr/~bounceur/cours_pdf/android/Android9_2_Firebase.pdf · Ajouter un projet Firebase 1. Donner un nom au projet 2.

Ajouter Firebase Authentification au projet

•  Ajouter cette ligne dans le fichier build.gradle apply plugin: 'com.android.application'

android { // ...}

dependencies { // ... implementation 'com.firebaseui:firebase-ui-auth:4.1.0'}

... Synchronisez

Page 37: Android9 2 Firebase - labsticc.univ-brest.frlabsticc.univ-brest.fr/~bounceur/cours_pdf/android/Android9_2_Firebase.pdf · Ajouter un projet Firebase 1. Donner un nom au projet 2.

Créer un nouvel utilisateur FirebaseUser user;

FirebaseAuth mAuth = FirebaseAuth.getInstance();

Task<AuthResult> task = mAuth.createUserWithEmailAndPassword("[email protected]", "mdpabcd");

task.addOnCompleteListener(this, new OnCompleteListener<AuthResult>() { @Override

public void onComplete(@NonNull Task<AuthResult> task) { if (task.isSuccessful()) {

user = mAuth.getCurrentUser(); Log.i("TAG", "OK"); } else { Log.w("TAG", "PBME", task.getException());

} } });

Page 38: Android9 2 Firebase - labsticc.univ-brest.frlabsticc.univ-brest.fr/~bounceur/cours_pdf/android/Android9_2_Firebase.pdf · Ajouter un projet Firebase 1. Donner un nom au projet 2.

Créer un nouvel utilisateur

Page 39: Android9 2 Firebase - labsticc.univ-brest.frlabsticc.univ-brest.fr/~bounceur/cours_pdf/android/Android9_2_Firebase.pdf · Ajouter un projet Firebase 1. Donner un nom au projet 2.

Se connecter FirebaseUser user;

FirebaseAuth auth = FirebaseAuth.getInstance();

Task<AuthResult> task = mAuth.signInWithEmailAndPassword("[email protected]", "mdpabcd"); task.addOnCompleteListener(this, new OnCompleteListener<AuthResult>() { @Override

public void onComplete(@NonNull Task<AuthResult> task) { if (task.isSuccessful()) { user = auth.getCurrentUser();

String uid = mAuth.getUid(); Log.i("TAG", "OK"); } else {

Log.w("TAG", "PBME", task.getException()); } } });

Page 40: Android9 2 Firebase - labsticc.univ-brest.frlabsticc.univ-brest.fr/~bounceur/cours_pdf/android/Android9_2_Firebase.pdf · Ajouter un projet Firebase 1. Donner un nom au projet 2.

Informations sur l’utilisateur String name = user.getDisplayName();

String email = user.getEmail();

Uri photoUrl = user.getPhotoUrl();

boolean emailVerified = user.isEmailVerified();

String uid = user.getUid();

Page 41: Android9 2 Firebase - labsticc.univ-brest.frlabsticc.univ-brest.fr/~bounceur/cours_pdf/android/Android9_2_Firebase.pdf · Ajouter un projet Firebase 1. Donner un nom au projet 2.

Mise à jour : nom et photo UserProfileChangeRequest profileUpdates = new UserProfileChangeRequest.Builder() .setDisplayName("Ahcene Bounceur") .setPhotoUri(Uri.parse("http://.../images/ahcene_bounceur.png"))

.build();

user.updateProfile(profileUpdates).addOnCompleteListener(new OnCompleteListener<Void>() {

@Overridepublic void onComplete(@NonNull Task<Void> task) {

if (task.isSuccessful()) {Log.d("TAG", "Succes.");

}}

});

Page 42: Android9 2 Firebase - labsticc.univ-brest.frlabsticc.univ-brest.fr/~bounceur/cours_pdf/android/Android9_2_Firebase.pdf · Ajouter un projet Firebase 1. Donner un nom au projet 2.

Mise à jour : mail user.updateEmail("[email protected]") .addOnCompleteListener(new OnCompleteListener<Void>() { @Override

public void onComplete(@NonNull Task<Void> task) { if (task.isSuccessful()) { Log.d("TAG", "Succes."); } } });

Page 43: Android9 2 Firebase - labsticc.univ-brest.frlabsticc.univ-brest.fr/~bounceur/cours_pdf/android/Android9_2_Firebase.pdf · Ajouter un projet Firebase 1. Donner un nom au projet 2.

Mise à jour : mot de passe user.updatePassword("nouveau_mot_de_passe") .addOnCompleteListener(new OnCompleteListener<Void>() { @Override

public void onComplete(@NonNull Task<Void> task) { if (task.isSuccessful()) { Log.d("TAG", "Succes."); } } });

Page 44: Android9 2 Firebase - labsticc.univ-brest.frlabsticc.univ-brest.fr/~bounceur/cours_pdf/android/Android9_2_Firebase.pdf · Ajouter un projet Firebase 1. Donner un nom au projet 2.

Envoyer l’email de vérification user.sendEmailVerification() .addOnCompleteListener(new OnCompleteListener<Void>() { @Override

public void onComplete(@NonNull Task<Void> task) { if (task.isSuccessful()) { Log.d(TAG, "Email envoyé."); } } });