Moibe commited on
Commit
8889c22
·
1 Parent(s): b6af255

Firebase control

Browse files
Files changed (4) hide show
  1. .gitignore +1 -0
  2. conexion_firebase.py +63 -0
  3. pruebas_firebase.py +9 -0
  4. requirements.txt +2 -1
.gitignore CHANGED
@@ -1,3 +1,4 @@
1
  /venv/
2
  /__pycache__/
3
  bridges.py
 
 
1
  /venv/
2
  /__pycache__/
3
  bridges.py
4
+ config.json
conexion_firebase.py ADDED
@@ -0,0 +1,63 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import firebase_admin
2
+ from firebase_admin import credentials
3
+ from firebase_admin import firestore
4
+
5
+ from firebase_admin import auth
6
+
7
+ # Use the application default credentials.
8
+ cred = credentials.Certificate('config.json')
9
+ firebase_admin.initialize_app(cred)
10
+
11
+ db = firestore.client()
12
+ #dato es el dato que traes como el nombre del user.
13
+ #info es la info de ese dato que estás buscando, como token.
14
+ def obtenDato(coleccion, dato, info):
15
+ #Future: Tentativamente ésta parte podría solo hacerse una vez y vivir en la app para ser reutilizado.
16
+
17
+ #Primero debemos definir la referencia al documento, o sea a la hoja de usuario.
18
+ doc_ref = db.collection(coleccion).document(dato)
19
+ #Éste es el documento que tiene los datos de ella.
20
+ documento = doc_ref.get()
21
+
22
+
23
+ if documento.exists:
24
+ pass #El documento si existe.
25
+ else:
26
+ print("No existe el documento, es un nuevo usuario.")
27
+ creaDato(coleccion, dato, 'tokens', 5) #porque agregará 5 tokens.
28
+
29
+ #Recuerda la conversión a diccionario.
30
+ documento = doc_ref.get()
31
+ diccionario = documento.to_dict()
32
+ return diccionario.get(info)
33
+
34
+ def editaDato(coleccion, dato, info, contenido):
35
+
36
+ #Primero debemos definir la referencia al documento, o sea a la hoja de usuario.
37
+ doc_ref = db.collection(coleccion).document(dato)
38
+
39
+ doc_ref.update({
40
+ # 'quote': quote,
41
+ info: contenido,
42
+ })
43
+
44
+ def creaDato(coleccion, dato, info, contenido):
45
+
46
+ #Primero debemos definir la referencia al documento, o sea a la hoja de usuario.
47
+ doc_ref = db.collection(coleccion).document(dato)
48
+
49
+ doc_ref.set({
50
+ # 'quote': quote,
51
+ info: contenido,
52
+ })
53
+
54
+ def verificar_token(id_token):
55
+ """Verifica el token de ID de Firebase."""
56
+ try:
57
+ # Verifica el token y decodifica la información del usuario
58
+ decoded_token = auth.verify_id_token(id_token)
59
+ uid = decoded_token['uid']
60
+ return uid # Retorna el UID del usuario si el token es válido
61
+ except auth.InvalidIdTokenError as e:
62
+ print(f"Token inválido: {e}")
63
+ return None # Retorna None si el token es inválido
pruebas_firebase.py ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ import conexion_firebase as cf
2
+
3
+ #dato el el nombre del documento.
4
+ #info es la info de ese dato que estás buscando, como token.
5
+ #obtenDato(coleccion, dato, info):
6
+ resultado = cf.obtenDato('nowme', 'huggingface', 'segundos')
7
+ print(resultado)
8
+
9
+ resultado = cf.editaDato('nowme', 'huggingface', 'segundos')
requirements.txt CHANGED
@@ -2,4 +2,5 @@ fastapi
2
  fastapi[standard]
3
  huggingface_hub
4
  gradio_client
5
- Pillow
 
 
2
  fastapi[standard]
3
  huggingface_hub
4
  gradio_client
5
+ Pillow
6
+ firebase_admin