Post on 25-May-2020
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 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
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'
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
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());}
});
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("mail@abcd.fr", "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());
} } });
Se connecter FirebaseUser user;
FirebaseAuth auth = FirebaseAuth.getInstance();
Task<AuthResult> task = mAuth.signInWithEmailAndPassword("mail@abcd.fr", "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("user@example.com") .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."); } } });