import firebase_admin from firebase_admin import firestore import os from datetime import datetime, date, timedelta from google.cloud.firestore_v1.base_query import FieldFilter if __name__ == "__main__": file_path = os.getcwd() + '/keys' + '/hpos-prod-firebase-adminsdk.json' cred = firebase_admin.credentials.Certificate(fr'{file_path}') firebase_admin.initialize_app(cred) db = firestore.client() registrations = db.collection("patientData").where(filter = FieldFilter("createdAt", ">", str(date.today()))).stream() hpos_tests = db.collection("testData").stream() # print([doc.to_dict() for doc in patient_collection.stream()]) total_deta = timedelta(minutes=0) total_count = 0 for registration in registrations: registration_dic = registration.to_dict() # print(registration_dic["_id"]) # hpos_test = filter(lambda x: x.to_dict()["_id"] != registration_dic["_id"], hpos_tests) # print(list(hpos_test)) test_docs = db.collection("testData").where("_id", "==", registration_dic["_id"]).stream() for test_doc in test_docs: test_data = test_doc.to_dict() # Combine the data from both collections into a single dictionary combined_data = {**registration_dic, **test_data} start_time = combined_data["createdAt"] end_time = combined_data["incubationTime"] delta = datetime.strptime(end_time, "%Y-%m-%d %H:%M:%S") - datetime.strptime(start_time, "%Y-%m-%d %H:%M:%S") total_deta = total_deta + delta total_count = total_count + 1 print(combined_data['_id'], combined_data["createdAt"], combined_data["incubationTime"], delta) print("tests count", total_count) print("waiting avg:", total_deta / total_count) firebase_admin.delete_app(firebase_admin.get_app())