Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
probml
GitHub Repository: probml/pyprobml
Path: blob/master/internal/book2/delete_firestore.py
1192 views
1
# command usage:
2
"""
3
Delete all keys: python internal/book2/delete_firestore.py -key "../key_probml_gcp.json" -level1 figures -level2 book2 -level3 figures
4
Delete 1 key: python internal/book2/delete_firestore.py -key "../key_probml_gcp.json" -level1 figures -level2 book2 -level3 figures -key_del 10.1
5
"""
6
from probml_utils.url_utils import create_firestore_db
7
import argparse
8
9
parser = argparse.ArgumentParser(description="delete firestore")
10
parser.add_argument("-key", "--key", type=str, help="")
11
parser.add_argument("-level1", "--level1", type=str, help="")
12
parser.add_argument("-level2", "--level2", type=str, help="")
13
parser.add_argument("-level3", "--level3", type=str, help="")
14
parser.add_argument("-key_del", "--key_del", type=str, help="")
15
args = parser.parse_args()
16
17
# arguments
18
key_path = args.key
19
level1 = args.level1
20
level2 = args.level2
21
level3 = args.level3
22
key_to_delete = args.key_del
23
24
25
db = create_firestore_db(key_path)
26
ref = db.collection(level1).document(level2).collection(level3)
27
n_doc = len(ref.get())
28
print(f"Deleteing {n_doc} documents from {level1}/{level2}/{level3}")
29
30
if not key_to_delete:
31
for doc in ref.get():
32
ref.document(doc.id).delete()
33
print(f"{n_doc} documents deleted")
34
35
else:
36
ref.document(key_to_delete).delete()
37
print(f"{key_to_delete} deleted")
38
39