45 lines
1.4 KiB
Python
45 lines
1.4 KiB
Python
|
|
# 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.")
|