44
Firebase Ahcène Bounceur PROGRAMMATION ANDROID Chapitre 9 Partie 9.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

  • Upload
    others

  • View
    35

  • Download
    3

Embed Size (px)

Citation preview

Firebase

Ahcène Bounceur

PROGRAMMATION ANDROID

Chapitre 9 Partie 9.2

Projet Android

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

la suite

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

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

Relation Android-Firebase

Relation Android-Firebase Package

& Certificat de

Signature SHA-1

Package

Certificat de Signature SHA-1

Relation Android-Firebase

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

Copier le fichier téléchargé

Relation Android-Firebase

•  Ajoutez le dans le dossier app de votre projet

Coller le fichier téléchargé

Passer en mode Project

BASE DE DONNÉES TEMPS RÉEL

Créer une base de données

Ensuite choisissez le cloud européen

Créer une base de données

Créer une base de données

Créer une base de données

1

2

3

PRÉPARER LE PROJET

Préparer le projet

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

Préparer le projet

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

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() }}

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'

Synchronisez le projet

Synchronisez

PROGRAMMATION

Préparer le programme

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

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

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

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

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()); }});

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);

Exemple

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());}

});

L’AUTHENTIFICATION

Configurer la connexion

Configurer la connexion

Configurer la connexion

Configurer la connexion

Configurer la connexion

Configurer la connexion

Ajouter l’Authentification au projet

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

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());

} } });

Créer un nouvel utilisateur

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()); } } });

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

String email = user.getEmail();

Uri photoUrl = user.getPhotoUrl();

boolean emailVerified = user.isEmailVerified();

String uid = user.getUid();

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.");

}}

});

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."); } } });

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."); } } });

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é."); } } });