# 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.")