Firebase - SaigoNoo/GetTheBeer GitHub Wiki
+ 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
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
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 !
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"
}