在继续操作之前,我需要确保交易已成功完成。
我只是在事务中间放置了一个pdb,然后从Firestore Web界面更新字段值。如果我继续,transaction.set
或transaction.update
尚未完成,但是我找不到找到它的方法。
import firebase_admin
from firebase_admin import firestore
from firebase_admin import credentials
cred = credentials.ApplicationDefault()
firebase_admin.initialize_app(cred, {
'projectId': 'foo',
})
db = firestore.client()
collection = db.collection('bar')
db_obj = collection.document('oNFxSaRXdplSby1eeHlL')
@firestore.transactional
def update_in_transaction(transaction, object_ref):
snapshot = object_ref.get(transaction=transaction)
if not snapshot.exists:
import pdb; pdb.set_trace()
transaction.set(object_ref, {'text': 'foobar'})
transaction = db.transaction()
update_in_transaction(transaction, db_obj)
是否有办法知道该值是从当前事务更新的,而不是由在另一个进程中运行的另一个更新的?