animvitals / app.py
Testys's picture
Update app.py
be1196b verified
raw
history blame
1.38 kB
import firebase_admin
from firebase_admin import credentials, db
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from fastapi.staticfiles import StaticFiles
# Path to your Firebase service account key file
cred = credentials.Certificate("animvitals-firebase-adminsdk-sgfas-3c8e7f596c.json")
# Initialize the app with a service account, granting admin privileges
firebase_admin.initialize_app(cred, {
'databaseURL': 'https://animvitals-default-rtdb.firebaseio.com'
})
app = FastAPI()
# Allow CORS so your frontend can access this API
app.add_middleware(
CORSMiddleware,
allow_origins=["*"], # Allow all origins
allow_credentials=True,
allow_methods=["*"], # Allow all methods
allow_headers=["*"], # Allow all headers
)
app.mount("/", StaticFiles(directory="index.html", html=True), name="static")
@app.get("/latest-data")
async def get_latest_data():
# Reference to the 'animal_data' node
ref = db.reference('animal_data')
# Get the latest data
data = ref.order_by_key().limit_to_last(1).get()
# Since data is returned as a dictionary, get the first item (latest entry)
if data:
key = next(iter(data))
return data[key]
else:
return {"error": "No data found"}
if __name__ == "__main__":
import uvicorn
uvicorn.run(app, host="0.0.0.0", port=8000)