Contenidos
- Configurar Firebase
- Crear aplicación que almacena en Firebase un valor pasado por POST y muestra los valores almacenados mediante una petición GET
- Ficheros para hacer el despliegue desde Vercel (una opción es crear un proyecto en Vercel )
- Desplegar el proyecto desde Vercel
- Código en Python que realiza una petición POST
Configurar Firebase
Enlace para configurar Firebase https://www.jesusninoc.com/12/04/usar-firebase-en-android-studio/




Crear aplicación que almacena en Firebase un valor pasado por POST y muestra los valores almacenados mediante una petición GET
Código que almacena en Firebase un valor pasado por POST y muestra los valores añadidos mediante una petición GET (el puerto debe ser 443)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
import os import firebase_admin from firebase_admin import credentials, firestore from flask import Flask, request, jsonify # Inicializa Firebase cred = credentials.Certificate("key/key.json") firebase_admin.initialize_app(cred) # Inicializa Firestore db = firestore.client() app = Flask(__name__) @app.route("/add", methods=["POST"]) def add_value(): """Recibe un valor y lo almacena en la base de datos Firestore.""" # Obtiene los datos del request data = request.get_json() # Verifica que se haya enviado un valor if not data or 'value' not in data: return jsonify({"error": "No se ha enviado ningún valor"}), 400 value = data['value'] # Almacena el valor en Firestore try: doc_ref = db.collection('values').add({'value': value}) # Recupera el ID del documento doc_id = doc_ref[1].id return jsonify({"id": doc_id, "value": value}), 201 except Exception as e: return jsonify({"error": str(e)}), 500 @app.route("/", methods=["GET"]) def get_values(): """Recupera todos los valores almacenados en la base de datos Firestore.""" try: # Recupera todos los documentos de la colección 'values' docs = db.collection('values').stream() values = [{"id": doc.id, "value": doc.to_dict().get('value')} for doc in docs] return jsonify(values), 200 except Exception as e: return jsonify({"error": str(e)}), 500 if __name__ == "__main__": app.run(debug=True, host="0.0.0.0", port=int(os.environ.get("PORT", 443))) |

Ficheros para hacer el despliegue desde Vercel (una opción es crear un proyecto en Vercel )

requirements.txt
1 2 3 4 |
pip autopep8 firebase-admin Flask==3.0.3 |
vercel.json
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
{ "builds": [ { "src": "api/index.py", "use": "@vercel/python" } ], "routes": [ { "src": "/(.*)", "dest": "api/index.py" } ] } |
Utilizar un template de Vercel (con Flask y modificar lo que sea necesario)

Desplegar el proyecto desde Vercel

Código en Python que realiza una petición POST
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
import requests # URL del endpoint de la aplicación Flask url = "https://URL/add" # Datos que se enviarán en la petición POST data = { "value": "Este es un valor de prueba 8" } # Realiza la petición POST response = requests.post(url, json=data) # Imprime la respuesta del servidor print(response.status_code) print(response.json()) |

Petición GET que muestra los valores añadidos a Firebase
