トランザクションでの Firestore ドキュメントの条件付き更新(非同期)
コレクションでコンテンツを整理
必要に応じて、コンテンツの保存と分類を行います。
トランザクションでの Firestore ドキュメントの条件付き更新(非同期)。
もっと見る
このコードサンプルを含む詳細なドキュメントについては、以下をご覧ください。
コードサンプル
Python
Firestore に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
特に記載のない限り、このページのコンテンツはクリエイティブ・コモンズの表示 4.0 ライセンスにより使用許諾されます。コードサンプルは Apache 2.0 ライセンスにより使用許諾されます。詳しくは、Google Developers サイトのポリシーをご覧ください。Java は Oracle および関連会社の登録商標です。
[[["わかりやすい","easyToUnderstand","thumb-up"],["問題の解決に役立った","solvedMyProblem","thumb-up"],["その他","otherUp","thumb-up"]],[["わかりにくい","hardToUnderstand","thumb-down"],["情報またはサンプルコードが不正確","incorrectInformationOrSampleCode","thumb-down"],["必要な情報 / サンプルがない","missingTheInformationSamplesINeed","thumb-down"],["翻訳に関する問題","translationIssue","thumb-down"],["その他","otherDown","thumb-down"]],[],[[["\u003cp\u003eThis code sample demonstrates how to conditionally update a Firestore document within an asynchronous transaction.\u003c/p\u003e\n"],["\u003cp\u003eThe code utilizes the \u003ccode\u003e@firestore.async_transactional\u003c/code\u003e decorator to define the transaction logic.\u003c/p\u003e\n"],["\u003cp\u003eIt checks a condition based on the document's current data (population) before performing an update.\u003c/p\u003e\n"],["\u003cp\u003eThe transaction will update a city's population only if the population does not surpass a million.\u003c/p\u003e\n"],["\u003cp\u003eThe operation returns a boolean \u003ccode\u003eresult\u003c/code\u003e which is then used to communicate the success or failure of the population update.\u003c/p\u003e\n"]]],[],null,["# Conditionally updating a Firestore document in a transaction (async).\n\nExplore further\n---------------\n\n\nFor detailed documentation that includes this code sample, see the following:\n\n- [Transactions and batched writes](/firestore/native/docs/manage-data/transactions)\n- [Transactions and batched writes](https://firebase.google.com/docs/firestore/manage-data/transactions)\n\nCode sample\n-----------\n\n### Python\n\n\nTo authenticate to Firestore, set up Application Default Credentials.\nFor more information, see\n\n[Set up authentication for a local development environment](/docs/authentication/set-up-adc-local-dev-environment).\n\n transaction = db.transaction()\n city_ref = db.collection(\"cities\").document(\"SF\")\n\n @firestore.async_transactional\n async def update_in_transaction(transaction, city_ref):\n snapshot = await city_ref.get(transaction=transaction)\n new_population = snapshot.get(\"population\") + 1\n\n if new_population \u003c 1000000:\n transaction.update(city_ref, {\"population\": new_population})\n return True\n else:\n return False\n\n result = await update_in_transaction(transaction, city_ref)\n if result:\n print(\"Population updated\")\n else:\n print(\"Sorry! Population is too big.\")\n\nWhat's next\n-----------\n\n\nTo search and filter code samples for other Google Cloud products, see the\n[Google Cloud sample browser](/docs/samples?product=firestore)."]]