Spaces:
Sleeping
Sleeping
Firebase control
Browse files- .gitignore +1 -0
- conexion_firebase.py +63 -0
- pruebas_firebase.py +9 -0
- 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
|