معاملات و ضبط بسته

ساخت وبلاگ

مجموعه های خود را بهینه کنید و محتوا را مطابق با تنظیمات خود طبقه بندی کنید.

Firestore Cloud از عملیات خواندن اتمی و ضبط داده ها پشتیبانی می کند. در مجموعه ای از عملیات اتمی ، یا تمام عملیات با موفقیت انجام می شود ، یا از یکی از آنها استفاده نمی شود. Firestore Cloud دارای دو نوع عملیات اتمی است:

  • معاملات: معامله مجموعه ای از عملیات خواندن و ضبط در یک یا چند سند است.
  • ضبط بسته: ضبط کیف مجموعه ای از عملیات ضبط برای یک یا چند سند است.

هر معامله یا بسته عملیات ضبط می تواند بیش از 500 سند را ثبت کند. محدودیت های اضافی مربوط به ضبط ، به سهمیه ها و محدودیت ها مراجعه کنید.

به روزرسانی داده ها با معاملات

با استفاده از کتابخانه های مشتری Cloud Firestore ، می توانید چندین عملیات را در یک معامله گروه بندی کنید. معاملات هنگامی مفید هستند که می خواهید مقدار این زمینه را بر اساس مقدار فعلی آن یا مقدار هر زمینه دیگر به روز کنید.

معامله شامل هر تعداد عملیات GET () است که به دنبال آن هر تعداد عملیات ضبط مانند تنظیم () ، به روزرسانی () یا حذف () است. در صورت ویرایش همزمان ، Cloud Firestore کل معامله را دوباره شروع می کند. به عنوان مثال ، اگر معامله اسناد را بخواند ، و مشتری دیگری هر یک از این اسناد را تغییر می دهد ، Firestore Cloud معامله را تکرار می کند. این عملکرد تضمین می کند که معامله با استفاده از داده های مرتبط و سازگار انجام می شود.

معاملات هرگز سوابق را تا حدی اعمال نمی کنند. تمام یادداشت ها در پایان یک معامله موفق انجام می شود.

هنگام استفاده از معاملات ، به این واقعیت توجه کنید که:

  • عملیات خواندن باید قبل از عملیات ضبط انجام شود.
  • تابعی که باعث ایجاد معامله (عملکرد معامله) می شود ، اگر ویرایش همزمان بر سندی که معامله می خواند ، بیش از یک بار انجام شود.
  • توابع معاملات نباید مستقیماً وضعیت برنامه را تغییر دهد.
  • هنگامی که مشتری خودمختار باشد ، معاملات انجام نمی شود.

مثال زیر نحوه ایجاد و راه اندازی معامله را نشان می دهد:

نسخه وب 9

نسخه وب 8

سریع
هدف- C

Kotlin+KTX

پیتون

پیتون

node. js
وحدت
یاقوت

انتقال اطلاعات معامله

شرط برنامه را در توابع معامله خود تغییر ندهید. این منجر به مشکلات موازی خواهد شد ، زیرا معاملات می توانند چندین بار انجام شود و اجرای آنها در جریان رابط کاربری تضمین نمی شود. درعوض ، اطلاعات لازم را از توابع معاملات منتقل کنید. مثال زیر براساس مثال قبلی برای نشان دادن نحوه انتقال اطلاعات از معامله است:

نسخه وب 9

نسخه وب 8

سریع
هدف- C

Kotlin+KTX

پیتون

پیتون

node. js
وحدت
یاقوت

خرابی معامله

معامله ممکن است به دلایل زیر تصویب نشود:

  • معامله شامل عملیات خواندن پس از ضبط عملیات است. عملیات خواندن همیشه باید قبل از هرگونه عملیات ضبط انجام شود.
  • معامله سندی را خوانده است که خارج از معامله تغییر یافته است. در این حالت ، معامله دوباره به طور خودکار انجام می شود. معامله تعداد نهایی بارها تکرار می شود.

معامله از حداکثر درخواست در 10 MIB فراتر رفت.

اندازه معامله بستگی به اندازه اسناد و ضبط های شاخص تغییر یافته توسط معامله دارد. برای عملکرد حذف ، این شامل اندازه سند هدف و اندازه ضبط های فهرست حذف شده در پاسخ به عملیات است.

یک معامله ناموفق خطا را برمی گرداند و چیزی در پایگاه داده نمی نویسد. نیازی به عقب نشینی معامله نیست. Cloud Firestore این کار را به صورت خودکار انجام می دهد.

ضبط باگون

اگر نیازی به خواندن هرگونه اسناد در مجموعه عملیات خود ندارید ، می توانید چندین عملیات ضبط را به عنوان یک بسته واحد شامل هر ترکیبی از مجموعه () ، به روزرسانی () یا حذف () انجام دهید. بسته ضبط با یک اتمی به پایان می رسد و می تواند در چندین سند رکورد ایجاد کند. مثال زیر نحوه ایجاد و رفع بسته ضبط را نشان می دهد:

نسخه وب 9

نسخه وب 8

سریع
هدف- C

Kotlin+KTX

پیتون

پیتون

node. js
وحدت
یاقوت

ضبط کیف ممکن است حاوی 500 عمل باشد. هر عمل در بسته هنگام استفاده از Firestore Cloud به طور جداگانه در نظر گرفته می شود.

مانند معاملات ، ضبط بسته اتمی است. بر خلاف معاملات ، در یک پرونده بسته ، لازم نیست تضمین شود که اسناد خوانده شده بدون تغییر باقی می مانند ، که منجر به تعداد کمتری از خرابی ها می شود. آنها به دلیل تلاش های مکرر بیش از حد در معرض تلاش ها یا شکست های مکرر نیستند. ضبط کیف حتی اگر دستگاه کاربر خودمختار باشد انجام می شود.

توجه داشته باشید. برای ورودی داده های انبوه ، از کتابخانه مشتری سرور با عملیات ضبط فردی موازی استفاده کنید. ضبط بسته بهتر از یک رکورد سریالی است ، اما بهتر از یک رکورد موازی نیست. شما باید از کتابخانه سرور مشتری برای عملیاتی با داده های انبوه و نه موبایل/وب-SDK استفاده کنید.

بررسی داده ها برای عملیات اتمی

برای کتابخانه های مشتری های موبایل/وب ، می توانید داده ها را با استفاده از قوانین امنیتی Cloud Firestore بررسی کنید. شما می توانید تضمین کنید که اسناد مرتبط همیشه آتومی و همیشه به عنوان بخشی از یک معامله یا سابقه بسته بندی به روز می شوند. برای دسترسی و بررسی وضعیت سند پس از تکمیل مجموعه عملیات ، از عملکرد امنیتی GetAfter () استفاده کنید ، اما قبل از اینکه Firestore Cloud عملیات را ضبط کند.

به عنوان مثال ، تصور کنید که پایگاه داده به عنوان مثال با شهرها نیز حاوی مجموعه ای از کشورها است. هر سند کشور از قسمت Last_updated برای ردیابی زمان آخرین به روزرسانی هر شهر مربوط به این کشور استفاده می کند. قوانین ایمنی زیر مستلزم آن است که سند شهر همچنین قسمت Last_updated را به روز کند:

محدودیت در قوانین ایمنی

در قوانین ایمنی برای معاملات یا ورود به بسته ، علاوه بر حد معمول در 10 تماس برای هر عملیات شخصی با سند در بسته ، 20 تماس برای کل عملیات اتمی محدودیت وجود دارد.

به عنوان مثال ، قوانین زیر را برای استفاده از گپ در نظر بگیرید:

قطعات زیر تعداد دسترسی به اسناد مورد استفاده برای چندین الگوی دسترسی به داده ها را نشان می دهد:

Firestore Cloud از عملیات خواندن اتمی و ضبط داده ها پشتیبانی می کند. در مجموعه ای از عملیات اتمی ، یا تمام عملیات با موفقیت انجام می شود ، یا از یکی از آنها استفاده نمی شود. Firestore Cloud دارای دو نوع عملیات اتمی است:

  • معاملات: معامله مجموعه ای از عملیات خواندن و ضبط در یک یا چند سند است.
  • ضبط بسته: ضبط کیف مجموعه ای از عملیات ضبط برای یک یا چند سند است.

هر معامله یا بسته عملیات ضبط می تواند بیش از 500 سند را ثبت کند. محدودیت های اضافی مربوط به ضبط ، به سهمیه ها و محدودیت ها مراجعه کنید.

به روزرسانی داده ها با معاملات

با استفاده از کتابخانه های مشتری Cloud Firestore ، می توانید چندین عملیات را در یک معامله گروه بندی کنید. معاملات هنگامی مفید هستند که می خواهید مقدار این زمینه را بر اساس مقدار فعلی آن یا مقدار هر زمینه دیگر به روز کنید.

معامله شامل هر تعداد عملیات GET () است که به دنبال آن هر تعداد عملیات ضبط مانند تنظیم () ، به روزرسانی () یا حذف () است. در صورت ویرایش همزمان ، Cloud Firestore کل معامله را دوباره شروع می کند. به عنوان مثال ، اگر معامله اسناد را بخواند ، و مشتری دیگری هر یک از این اسناد را تغییر می دهد ، Firestore Cloud معامله را تکرار می کند. این عملکرد تضمین می کند که معامله با استفاده از داده های مرتبط و سازگار انجام می شود.

معاملات هرگز سوابق را تا حدی اعمال نمی کنند. تمام یادداشت ها در پایان یک معامله موفق انجام می شود.

هنگام استفاده از معاملات ، به این واقعیت توجه کنید که:

  • عملیات خواندن باید قبل از عملیات ضبط انجام شود.
  • تابعی که باعث ایجاد معامله (عملکرد معامله) می شود ، اگر ویرایش همزمان بر سندی که معامله می خواند ، بیش از یک بار انجام شود.
  • توابع معاملات نباید مستقیماً وضعیت برنامه را تغییر دهد.
  • هنگامی که مشتری خودمختار باشد ، معاملات انجام نمی شود.

مثال زیر نحوه ایجاد و راه اندازی معامله را نشان می دهد:

نسخه وب 9

نسخه وب 8

سریع
هدف- C

Kotlin+KTX

پیتون

پیتون

node. js
وحدت
یاقوت

انتقال اطلاعات معامله

شرط برنامه را در توابع معامله خود تغییر ندهید. این منجر به مشکلات موازی خواهد شد ، زیرا معاملات می توانند چندین بار انجام شود و اجرای آنها در جریان رابط کاربری تضمین نمی شود. درعوض ، اطلاعات لازم را از توابع معاملات منتقل کنید. مثال زیر براساس مثال قبلی برای نشان دادن نحوه انتقال اطلاعات از معامله است:

نسخه وب 9

نسخه وب 8

سریع
هدف- C

Kotlin+KTX

پیتون

پیتون

node. js
وحدت
یاقوت

خرابی معامله

معامله ممکن است به دلایل زیر تصویب نشود:

  • معامله شامل عملیات خواندن پس از ضبط عملیات است. عملیات خواندن همیشه باید قبل از هرگونه عملیات ضبط انجام شود.
  • معامله سندی را خوانده است که خارج از معامله تغییر یافته است. در این حالت ، معامله دوباره به طور خودکار انجام می شود. معامله تعداد نهایی بارها تکرار می شود.

معامله از حداکثر درخواست در 10 MIB فراتر رفت.

اندازه معامله بستگی به اندازه اسناد و ضبط های شاخص تغییر یافته توسط معامله دارد. برای عملکرد حذف ، این شامل اندازه سند هدف و اندازه ضبط های فهرست حذف شده در پاسخ به عملیات است.

یک معامله ناموفق خطا را برمی گرداند و چیزی در پایگاه داده نمی نویسد. نیازی به عقب نشینی معامله نیست. Cloud Firestore این کار را به صورت خودکار انجام می دهد.

ضبط باگون

اگر نیازی به خواندن هرگونه اسناد در مجموعه عملیات خود ندارید ، می توانید چندین عملیات ضبط را به عنوان یک بسته واحد شامل هر ترکیبی از مجموعه () ، به روزرسانی () یا حذف () انجام دهید. بسته ضبط با یک اتمی به پایان می رسد و می تواند در چندین سند رکورد ایجاد کند. مثال زیر نحوه ایجاد و رفع بسته ضبط را نشان می دهد:

نسخه وب 9

نسخه وب 8

سریع
هدف- C

Kotlin+KTX

پیتون

پیتون

node. js
وحدت
یاقوت

ضبط کیف ممکن است حاوی 500 عمل باشد. هر عمل در بسته هنگام استفاده از Firestore Cloud به طور جداگانه در نظر گرفته می شود.

مانند معاملات ، ضبط بسته اتمی است. بر خلاف معاملات ، در یک پرونده بسته ، لازم نیست تضمین شود که اسناد خوانده شده بدون تغییر باقی می مانند ، که منجر به تعداد کمتری از خرابی ها می شود. آنها به دلیل تلاش های مکرر بیش از حد در معرض تلاش ها یا شکست های مکرر نیستند. ضبط کیف حتی اگر دستگاه کاربر خودمختار باشد انجام می شود.

توجه داشته باشید. برای ورودی داده های انبوه ، از کتابخانه مشتری سرور با عملیات ضبط فردی موازی استفاده کنید. ضبط بسته بهتر از یک رکورد سریالی است ، اما بهتر از یک رکورد موازی نیست. شما باید از کتابخانه سرور مشتری برای عملیاتی با داده های انبوه و نه موبایل/وب-SDK استفاده کنید.

بررسی داده ها برای عملیات اتمی

برای کتابخانه های مشتری های موبایل/وب ، می توانید داده ها را با استفاده از قوانین امنیتی Cloud Firestore بررسی کنید. شما می توانید تضمین کنید که اسناد مرتبط همیشه آتومی و همیشه به عنوان بخشی از یک معامله یا سابقه بسته بندی به روز می شوند. برای دسترسی و بررسی وضعیت سند پس از تکمیل مجموعه عملیات ، از عملکرد امنیتی GetAfter () استفاده کنید ، اما قبل از اینکه Firestore Cloud عملیات را ضبط کند.

به عنوان مثال ، تصور کنید که پایگاه داده به عنوان مثال با شهرها نیز حاوی مجموعه ای از کشورها است. هر سند کشور از قسمت Last_updated برای ردیابی زمان آخرین به روزرسانی هر شهر مربوط به این کشور استفاده می کند. قوانین ایمنی زیر مستلزم آن است که سند شهر همچنین قسمت Last_updated را به روز کند:

محدودیت در قوانین ایمنی

در قوانین ایمنی برای معاملات یا ورود به بسته ، علاوه بر حد معمول در 10 تماس برای هر عملیات شخصی با سند در بسته ، 20 تماس برای کل عملیات اتمی محدودیت وجود دارد.

به عنوان مثال ، قوانین زیر را برای استفاده از گپ در نظر بگیرید:

قطعات زیر تعداد دسترسی به اسناد مورد استفاده برای چندین الگوی دسترسی به داده ها را نشان می دهد:

 

پلتفرم های تجاری...
ما را در سایت پلتفرم های تجاری دنبال می کنید

برچسب : نویسنده : مریم کاویانی بازدید : 45 تاريخ : شنبه 6 خرداد 1402 ساعت: 23:33