Files
hpos-data/scripts/final_result_update.py

45 lines
1.4 KiB
Python
Raw Normal View History

2023-11-26 23:40:24 +05:30
# from google.cloud import firestore
import firebase_admin
from firebase_admin import firestore
from google.cloud.firestore_v1.base_query import FieldFilter
from firebase_admin import credentials
import os
import pandas as pd
from tqdm import tqdm
curdir = os.getcwd()
path_delim = '/'
df = pd.read_excel(curdir + path_delim + "data/Nov09.xlsx", sheet_name="op")
project_id = 'af3cc'
collection_name = 'testData'
# document_ids = ['2808202300075ROOBHO', '2808202300075ROOBHO']
sample_ids = df["Sample ID"].to_list()
print(len(sample_ids))
cred = credentials.Certificate(os.getcwd() + '/' + 'keys/hpos-prod-firebase-adminsdk.json')
firebase_admin.initialize_app(cred)
db = firestore.client()
batch_limit = 30
for i in tqdm(range(0, len(sample_ids), batch_limit)):
query = db.collection(collection_name).where(filter=FieldFilter("_id", "in", sample_ids[i: i+batch_limit]))
docs = query.stream()
batch = db.batch()
for doc in docs:
doc_data = doc.to_dict()
doc_id = doc.id
doc_ref = db.collection(collection_name).document(doc_id)
# test_result = df[(df["Sample ID"] == doc_data["_id"])]["Test Result"].item()
test_result = df.loc[df["Sample ID"] == doc_data["_id"], "Test Result"].iloc[0]
batch.update(doc_ref, {'finalResult': test_result})
# Commit the batch
batch.commit()
# print("Batch update completed successfully.")