Firebase - SaigoNoo/GetTheBeer GitHub Wiki

Résumé coaching 5.a

+ Qu'avez vous comme données dans Firebase ? Quel est le format ?
+ Comment enregistrez-vous les données ? A la main ? Avec l'application ? Avec le projet d'électronique ?
+ Comment récupérez-vous les données 

1. Les données dans Firebase

Firebase recueille simplement les datas de la dernière transaction déclarée:

  • L'ID du perdant
  • L'ID du gagnant
  • L'ID de la transaction
  • Les bieres pariés

2. Enregistrement de données

Tout se passe dans le backend. Lorsqu'on execute la méthode de transaction, en même temps que l'on envoie une requete au serveur de base de donnée MariaDB, on envoie également une sur Firebase !

3. Récupération de données

On ne récupère rien de Firebase !

4. Infos utiles pour comprendre le travail effectué et l'utilisation de Firebase au sein de votre projet

Voici les infos principales: Backend: database.py:

from dotenv import load_dotenv
from os import getenv
from firebase_admin import credentials, initialize_app, db
load_dotenv()


class Firebase:
    def __init__(self, debug: Debug):
        self.debug = debug
        self.debug.print(
            app_module="FireBase",
            text=f"Connexion à Firebase via le fichier firebase_key.json"
        )
        cred = credentials.Certificate(cert="firebase_key.json")
        self.debug.print(
            app_module="FireBase",
            text=f"Initialisation..."
        )
        initialize_app(
            credential=cred,
            options={
                'databaseURL': getenv(key="FIREBASE_URL")
            }
        )
        self.debug.print(
            app_module="FireBase",
            text=f"Création du socket FireBase..."
        )
        self.cursor = db.reference("/")

    def set(self, beers_owed: int, creditor_id: int, debitor_id: int):
        self.debug.print(
            app_module="FireBase",
            text=f"Envoie de données transaction à FireBase..."
        )
        self.cursor.set({
            'beers_owed': beers_owed,
            'creditor_id': creditor_id,
            'debitor_id': debitor_id
        })

classes/users.py (dans do_transaction()):

        self.debug.print(app_module="FireBase", text=f"Envoi de données dans FireBase pour la transaction actuelle...")
        self.fb.set(beers_owed=beers, creditor_id=winner_id, debitor_id=loser_id)

Le .env:

FIREBASE_URL=https://getthebeer-b8fad-default-rtdb.europe-west1.firebasedatabase.app

Le fichier fb.json:

{
  "type": "service_account",
  "project_id": "getthebeer-b8fad",
  "private_key_id": "<PRIV_KEY_ID>",
  "private_key": "<PRIV_KEY>",
  "client_email": "[email protected]",
  "client_id": "<ID CLIENT>",
  "auth_uri": "https://accounts.google.com/o/oauth2/auth",
  "token_uri": "https://oauth2.googleapis.com/token",
  "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
  "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/firebase-adminsdk-fbsvc%40getthebeer-b8fad.iam.gserviceaccount.com",
  "universe_domain": "googleapis.com"
}
⚠️ **GitHub.com Fallback** ⚠️