我正在將 Firebase Admin SDK 與 python 一起使用,并想洗掉帶有 Async/Await 子句的 Firestore 集合。
在官方檔案說,(非異步/等待)洗掉應該這樣做:
def delete_collection(col_ref, batch_size):
docs = col_ref.limit(batch_size).stream()
deleted = 0
for doc in docs:
print(f'Deleting doc {doc.id} => {doc.to_dict()}')
doc.reference.delete()
deleted = deleted 1
if deleted >= batch_size:
return delete_collection(col_ref, batch_size)
但是,這在 Async/Await 版本中效果不佳。如果我AsyncCollectionReference輸入col_ref,它會導致這個錯誤:
TypeError: 'async_generator' object is not iterable
是否可以修復此問題?或者,執行 Async/Await 批量洗掉是一個完全錯誤的想法嗎?
謝謝!
uj5u.com熱心網友回復:
嘗試在您的代碼中添加 async/await 陳述句:
async def delete_collection(coll_ref, batch_size):
docs = coll_ref.limit(batch_size).stream()
deleted = 0
async for doc in docs:
print(f"Deleting doc {doc.id} => {doc.to_dict()}")
await doc.reference.delete()
deleted = deleted 1
if deleted >= batch_size:
return delete_collection(coll_ref, batch_size)
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/360669.html
標籤:Python 火力基地 异步 异步等待 firebase-admin
