Транзакция не выполняется, не может использоваться в запросах API. FIRESTORE ERROR - PullRequest
0 голосов
/ 29 апреля 2020

Я изучаю транзакции в Firestore, и я делаю некоторые изменения в типовых функциях документации, но я не уверен, почему я получаю «Транзакция не выполняется ...», когда я совершаю транзакции без функции

transaction = firestore_db.transaction()
doc_ref = firestore_db.collection(u'metadata').document(u'projects')

#@firestore.transactional
snapshot = doc_ref.get(transaction=transaction)
transaction.update(doc_ref, {
    u'count': snapshot.get(u'count') + 1
})

# [END update_data_transaction]

Что означает эта ошибка? Я хочу составить счетчик моих проектов, чтобы разбить его на страницы в моем приложении wep. Я бы хотел, чтобы пользователь мог перемещаться между разными страницами, а не только на предыдущую и следующую, как показано в документации. Спасибо за ваше время!

1 Ответ

1 голос
/ 29 апреля 2020

Функция, или, лучше сказать, декоратор @firestore.transactional была неотъемлемой частью логики c. Сообщение об ошибке означает, что вы не начали транзакцию, вы только что создали экземпляр объекта trnsaction.

Вы можете начать транзакцию вручную, используя transaction._begin, но я бы настоятельно рекомендовал против этого. Просто используйте декоратор, который предоставляет простой способ управления транзакциями, включая, например, обработку ошибок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...