Package google.firestore.v1beta1

فهرست مطالب

آتش نشانی

سرویس Cloud Firestore.

Cloud Firestore یک پایگاه داده اسناد NoSQL سریع، کاملاً مدیریت شده، بدون سرور و بومی ابری است که ذخیره، همگام‌سازی و جستجوی داده‌ها را برای برنامه‌های تلفن همراه، وب و اینترنت اشیا شما در مقیاس جهانی ساده می‌کند. کتابخانه های مشتری آن همگام سازی زنده و پشتیبانی آفلاین را ارائه می دهند، در حالی که ویژگی های امنیتی و ادغام آن با Firebase و Google Cloud Platform سرعت ساخت برنامه های واقعاً بدون سرور را افزایش می دهد.

BatchGetDocuments

rpc BatchGetDocuments( BatchGetDocumentsRequest ) returns ( BatchGetDocumentsResponse )

چندین سند دریافت می کند.

اسنادی که با این روش بازگردانده می شوند، تضمینی برای بازگرداندن آنها به همان ترتیبی که درخواست شده است ندارند.

محدوده مجوز

به یکی از حوزه های OAuth زیر نیاز دارد:

  • https://www.googleapis.com/auth/datastore
  • https://www.googleapis.com/auth/cloud-platform

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

BatchWrite

rpc BatchWrite( BatchWriteRequest ) returns ( BatchWriteResponse )

دسته ای از عملیات نوشتن را اعمال می کند.

متد BatchWrite عملیات نوشتن را به صورت اتمی اعمال نمی کند و می تواند آنها را خارج از نظم اعمال کند. روش اجازه نمی دهد بیش از یک نوشتن در هر سند. هر نوشته به طور مستقل با موفقیت یا شکست مواجه می شود. برای وضعیت موفقیت هر نوشته به BatchWriteResponse مراجعه کنید.

اگر به مجموعه ای از نوشتن ها به صورت اتمی نیاز دارید، به جای آن از Commit استفاده کنید.

محدوده مجوز

به یکی از حوزه های OAuth زیر نیاز دارد:

  • https://www.googleapis.com/auth/datastore
  • https://www.googleapis.com/auth/cloud-platform

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

شروع معامله

rpc BeginTransaction( BeginTransactionRequest ) returns ( BeginTransactionResponse )

تراکنش جدیدی را شروع می کند.

محدوده مجوز

به یکی از حوزه های OAuth زیر نیاز دارد:

  • https://www.googleapis.com/auth/datastore
  • https://www.googleapis.com/auth/cloud-platform

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

مرتکب شدن

rpc Commit( CommitRequest ) returns ( CommitResponse )

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

محدوده مجوز

به یکی از حوزه های OAuth زیر نیاز دارد:

  • https://www.googleapis.com/auth/datastore
  • https://www.googleapis.com/auth/cloud-platform

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

ایجاد سند

rpc CreateDocument( CreateDocumentRequest ) returns ( Document )

یک سند جدید ایجاد می کند.

محدوده مجوز

به یکی از حوزه های OAuth زیر نیاز دارد:

  • https://www.googleapis.com/auth/datastore
  • https://www.googleapis.com/auth/cloud-platform

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

حذف سند

rpc DeleteDocument( DeleteDocumentRequest ) returns ( Empty )

یک سند را حذف می کند.

محدوده مجوز

به یکی از حوزه های OAuth زیر نیاز دارد:

  • https://www.googleapis.com/auth/datastore
  • https://www.googleapis.com/auth/cloud-platform

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

GetDocument

rpc GetDocument( GetDocumentRequest ) returns ( Document )

یک سند واحد می گیرد.

محدوده مجوز

به یکی از حوزه های OAuth زیر نیاز دارد:

  • https://www.googleapis.com/auth/datastore
  • https://www.googleapis.com/auth/cloud-platform

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

ListCollectionIds

rpc ListCollectionIds( ListCollectionIdsRequest ) returns ( ListCollectionIdsResponse )

تمام شناسه های مجموعه را در زیر یک سند فهرست می کند.

محدوده مجوز

به یکی از حوزه های OAuth زیر نیاز دارد:

  • https://www.googleapis.com/auth/datastore
  • https://www.googleapis.com/auth/cloud-platform

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

فهرست اسناد

rpc ListDocuments( ListDocumentsRequest ) returns ( ListDocumentsResponse )

اسناد را فهرست می کند.

محدوده مجوز

به یکی از حوزه های OAuth زیر نیاز دارد:

  • https://www.googleapis.com/auth/datastore
  • https://www.googleapis.com/auth/cloud-platform

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

گوش بده

rpc Listen( ListenRequest ) returns ( ListenResponse )

به تغییرات گوش می دهد. این روش فقط از طریق gRPC یا WebChannel (نه REST) ​​در دسترس است.

محدوده مجوز

به یکی از حوزه های OAuth زیر نیاز دارد:

  • https://www.googleapis.com/auth/datastore
  • https://www.googleapis.com/auth/cloud-platform

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

PartitionQuery

rpc PartitionQuery( PartitionQueryRequest ) returns ( PartitionQueryResponse )

یک پرس و جو را با برگرداندن مکان نماهای پارتیشن که می توانند برای اجرای پرس و جو به صورت موازی استفاده شوند، پارتیشن بندی می کند. نشانگرهای پارتیشن برگشتی نقاط تقسیم شده ای هستند که می توانند توسط RunQuery به عنوان نقطه شروع/پایان برای نتایج پرس و جو استفاده شوند.

محدوده مجوز

به یکی از حوزه های OAuth زیر نیاز دارد:

  • https://www.googleapis.com/auth/datastore
  • https://www.googleapis.com/auth/cloud-platform

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

بازگشت به عقب

rpc Rollback( RollbackRequest ) returns ( Empty )

تراکنش را به عقب برمی گرداند.

محدوده مجوز

به یکی از حوزه های OAuth زیر نیاز دارد:

  • https://www.googleapis.com/auth/datastore
  • https://www.googleapis.com/auth/cloud-platform

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

RunAggregationQuery

rpc RunAggregationQuery( RunAggregationQueryRequest ) returns ( RunAggregationQueryResponse )

یک پرس و جو تجمع را اجرا می کند.

به جای تولید نتایج Document مانند Firestore.RunQuery ، این API به اجرای یک تجمع برای تولید یک سری از AggregationResult سمت سرور اجازه می دهد.

مثال سطح بالا:

-- Return the number of documents in table given a filter.
SELECT COUNT(*) FROM ( SELECT * FROM k where a = true );
محدوده مجوز

به یکی از حوزه های OAuth زیر نیاز دارد:

  • https://www.googleapis.com/auth/datastore
  • https://www.googleapis.com/auth/cloud-platform

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

RunQuery

rpc RunQuery( RunQueryRequest ) returns ( RunQueryResponse )

یک پرس و جو را اجرا می کند.

محدوده مجوز

به یکی از حوزه های OAuth زیر نیاز دارد:

  • https://www.googleapis.com/auth/datastore
  • https://www.googleapis.com/auth/cloud-platform

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

به روز رسانی سند

rpc UpdateDocument( UpdateDocumentRequest ) returns ( Document )

یک سند را به روز می کند یا درج می کند.

محدوده مجوز

به یکی از حوزه های OAuth زیر نیاز دارد:

  • https://www.googleapis.com/auth/datastore
  • https://www.googleapis.com/auth/cloud-platform

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

نوشتن

rpc Write( WriteRequest ) returns ( WriteResponse )

دسته‌ای از به‌روزرسانی‌ها و حذف‌های اسناد را به ترتیب پخش می‌کند. این روش فقط از طریق gRPC یا WebChannel (نه REST) ​​در دسترس است.

محدوده مجوز

به یکی از حوزه های OAuth زیر نیاز دارد:

  • https://www.googleapis.com/auth/datastore
  • https://www.googleapis.com/auth/cloud-platform

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

نتیجه تجمع

نتیجه یک سطل منفرد از یک پرس و جو تجمع Firestore.

کلیدهای aggregate_fields برای همه نتایج در یک جستار تجمعی یکسان هستند، بر خلاف کوئری های سند که می توانند فیلدهای متفاوتی برای هر نتیجه داشته باشند.

زمینه های
aggregate_fields

map<string, Value >

نتیجه توابع تجمع، به عنوان مثال: COUNT(*) AS total_docs .

کلید، alias اختصاص داده شده به تابع تجمع در ورودی است و اندازه این نقشه برابر با تعداد توابع تجمع در پرس و جو است.

ArrayValue

یک مقدار آرایه

زمینه های
values[]

Value

مقادیر موجود در آرایه

BatchGetDocumentsRequest

درخواست Firestore.BatchGetDocuments .

زمینه های
database

string

ضروری. نام پایگاه داده در قالب: projects/{project_id}/databases/{database_id} .

documents[]

string

نام مدارکی که باید بازیابی شود. در قالب: projects/{project_id}/databases/{database_id}/documents/{document_path} . اگر هر یک از اسناد منبع فرزند database داده شده نباشد، درخواست ناموفق خواهد بود. نام های تکراری حذف خواهند شد.

mask

DocumentMask

زمینه هایی برای بازگشت. اگر تنظیم نشود، همه فیلدها را برمی گرداند.

اگر سندی دارای فیلدی باشد که در این ماسک وجود ندارد، آن فیلد در پاسخ بازگردانده نخواهد شد.

اتحاد فیلد consistency_selector . حالت سازگاری برای این معامله. اگر تنظیم نشده باشد، به طور پیش‌فرض روی سازگاری قوی تنظیم می‌شود. consistency_selector تنها می تواند یکی از موارد زیر باشد:
transaction

bytes

اسناد را در یک معامله می خواند.

new_transaction

TransactionOptions

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

read_time

Timestamp

اسناد را همانطور که در زمان معین بودند می خواند.

این باید یک مهر زمانی دقیق میکروثانیه در یک ساعت گذشته باشد، یا اگر بازیابی نقطه در زمان فعال باشد، می‌تواند یک مهر زمانی کامل در 7 روز گذشته باشد.

BatchGetDocumentsResponse

پاسخ جریانی برای Firestore.BatchGetDocuments .

زمینه های
transaction

bytes

معامله ای که به عنوان بخشی از این درخواست آغاز شد. فقط در اولین پاسخ تنظیم می شود و فقط در صورتی که BatchGetDocumentsRequest.new_transaction در درخواست تنظیم شده باشد.

read_time

Timestamp

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

result میدان اتحادیه یک نتیجه واحد اگر سرور فقط یک تراکنش را برمی گرداند، ممکن است خالی باشد. result می تواند تنها یکی از موارد زیر باشد:
found

Document

سندی که درخواست شد.

missing

string

نام سندی که درخواست شده است اما وجود ندارد. در قالب: projects/{project_id}/databases/{database_id}/documents/{document_path} .

BatchWriteRequest

درخواست Firestore.BatchWrite .

زمینه های
database

string

ضروری. نام پایگاه داده در قالب: projects/{project_id}/databases/{database_id} .

writes[]

Write

می نویسد برای اعمال.

روش به صورت اتمی نوشته نمی شود و سفارش را تضمین نمی کند. هر نوشته به طور مستقل با موفقیت یا شکست مواجه می شود. در هر درخواست نمی توانید بیش از یک بار در یک سند بنویسید.

labels

map<string, string>

برچسب های مرتبط با این دسته می نویسند.

BatchWriteResponse

پاسخ از Firestore.BatchWrite .

زمینه های
write_results[]

WriteResult

نتیجه اعمال نوشته ها.

این نتیجه نوشتن i-ام با نوشتن i-ام در درخواست مطابقت دارد.

status[]

Status

وضعیت اعمال نوشته ها.

این وضعیت نوشتن i-ام با نوشتن i-ام در درخواست مطابقت دارد.

درخواست شروع معامله

درخواست Firestore.BeginTransaction .

زمینه های
database

string

ضروری. نام پایگاه داده در قالب: projects/{project_id}/databases/{database_id} .

options

TransactionOptions

گزینه های معامله پیش‌فرض تراکنش خواندن و نوشتن.

شروع معامله

پاسخ برای Firestore.BeginTransaction .

زمینه های
transaction

bytes

معامله ای که شروع شد.

BitSequence

دنباله ای از بیت ها که در یک آرایه بایت کدگذاری شده اند.

هر بایت در آرایه بایت bitmap مپ 8 بیت از دنباله را ذخیره می کند. تنها استثنا آخرین بایت است که ممکن است 8 بیت یا کمتر را ذخیره کند. padding تعداد بیت های آخرین بایت را که نادیده گرفته می شود به عنوان "padding" تعریف می کند. مقادیر این بیت های "padding" نامشخص هستند و باید نادیده گرفته شوند.

برای بازیابی اولین بیت، بیت 0، محاسبه کنید: (bitmap[0] & 0x01) != 0 . برای بازیابی بیت دوم، بیت 1، محاسبه کنید: (bitmap[0] & 0x02) != 0 . برای بازیابی بیت سوم، بیت 2، محاسبه کنید: (bitmap[0] & 0x04) != 0 . برای بازیابی بیت چهارم، بیت 3، محاسبه کنید: (bitmap[0] & 0x08) != 0 . برای بازیابی بیت n، محاسبه کنید: (bitmap[n / 8] & (0x01 << (n % 8))) != 0 .

"اندازه" یک BitSequence (تعداد بیت های موجود در آن) با این فرمول محاسبه می شود: (bitmap.length * 8) - padding .

زمینه های
bitmap

bytes

بایت هایی که دنباله بیت را رمزگذاری می کنند. ممکن است طولی برابر با صفر داشته باشد.

padding

int32

تعداد بیت های آخرین بایت در bitmap که به عنوان "padding" نادیده گرفته می شود. اگر طول bitmap صفر باشد، این مقدار باید 0 باشد. در غیر این صورت، این مقدار باید بین 0 تا 7 باشد.

BloomFilter

یک فیلتر شکوفه ( https://en.wikipedia.org/wiki/Bloom_filter) .

فیلتر bloom ورودی ها را با MD5 هش می کند و هش 128 بیتی حاصل را به عنوان 2 مقدار هش 64 بیتی مجزا در نظر می گیرد که با استفاده از رمزگذاری مکمل 2 به عنوان اعداد صحیح بدون علامت تفسیر می شوند.

این دو مقدار هش، به نام‌های h1 و h2 ، سپس برای محاسبه مقادیر hash_count با استفاده از فرمول استفاده می‌شوند که از i=0 شروع می‌شود:

h(i) = h1 + (i * h2)

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

زمینه های
bits

BitSequence

داده های فیلتر شکوفه

hash_count

int32

تعداد هش های استفاده شده توسط الگوریتم.

CommitRequest

درخواست Firestore.Commit .

زمینه های
database

string

ضروری. نام پایگاه داده در قالب: projects/{project_id}/databases/{database_id} .

writes[]

Write

می نویسد برای اعمال.

همیشه به صورت اتمی و به ترتیب اجرا می شود.

transaction

bytes

در صورت تنظیم، تمام نوشته های این تراکنش را اعمال می کند و آن را انجام می دهد.

CommitResponse

پاسخ برای Firestore.Commit .

زمینه های
write_results[]

WriteResult

نتیجه اعمال نوشته ها.

این نتیجه نوشتن i-ام با نوشتن i-ام در درخواست مطابقت دارد.

commit_time

Timestamp

زمانی که ارتکاب در آن اتفاق افتاد. هر خواندنی با read_time مساوی یا بیشتر تضمین می شود که اثرات commit را مشاهده کند.

CreateDocumentRequest

درخواست Firestore.CreateDocument .

زمینه های
parent

string

ضروری. منبع والد برای مثال: projects/{project_id}/databases/{database_id}/documents or projects/{project_id}/databases/{database_id}/documents/chatrooms/{chatroom_id}

collection_id

string

ضروری. شناسه مجموعه، نسبت به parent ، به فهرست. به عنوان مثال: chatrooms .

document_id

string

شناسه سند اختصاص داده شده توسط مشتری برای استفاده برای این سند.

اختیاری. اگر مشخص نشده باشد، یک شناسه توسط سرویس تخصیص داده می شود.

document

Document

ضروری. سند برای ایجاد name نباید تنظیم شود

mask

DocumentMask

زمینه هایی برای بازگشت. اگر تنظیم نشود، همه فیلدها را برمی گرداند.

اگر سند دارای فیلدی باشد که در این ماسک وجود ندارد، آن فیلد در پاسخ بازگردانده نمی شود.

مکان نما

یک موقعیت در مجموعه نتایج پرس و جو.

زمینه های
values[]

Value

مقادیری که یک موقعیت را نشان می‌دهند، به ترتیبی که به ترتیب بند یک پرس و جو ظاهر می‌شوند.

می‌تواند حاوی مقادیر کمتری از مقدار مشخص‌شده در ترتیب با بند باشد.

before

bool

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

DeleteDocumentRequest

درخواست Firestore.DeleteDocument .

زمینه های
name

string

ضروری. نام منبع سندی که باید حذف شود. در قالب: projects/{project_id}/databases/{database_id}/documents/{document_path} .

current_document

Precondition

یک پیش شرط اختیاری در سند. اگر این درخواست تنظیم شده باشد و توسط سند مورد نظر برآورده نشود، این درخواست با شکست مواجه خواهد شد.

سند

یک سند Firestore

نباید بیش از 1 مگابایت - 4 بایت باشد.

زمینه های
name

string

نام منبع سند، برای مثال projects/{project_id}/databases/{database_id}/documents/{document_path} .

fields

map<string, Value >

create_time

Timestamp

فقط خروجی زمانی که سند ایجاد شد.

این مقدار زمانی که یک سند حذف می شود و دوباره ایجاد می شود به طور یکنواخت افزایش می یابد. همچنین می توان آن را با مقادیر سایر اسناد و read_time یک پرس و جو مقایسه کرد.

update_time

Timestamp

فقط خروجی زمانی که سند آخرین بار تغییر کرده است.

این مقدار در ابتدا روی create_time تنظیم می شود و سپس با هر تغییر در سند به طور یکنواخت افزایش می یابد. همچنین می توان آن را با مقادیر سایر اسناد و read_time یک پرس و جو مقایسه کرد.

تغییر سند

یک Document تغییر کرده است

ممکن است نتیجه چندین writes باشد، از جمله حذف، که در نهایت به یک مقدار جدید برای Document منجر شده است.

در صورتی که چندین هدف تحت تأثیر قرار گرفته باشند، ممکن است چندین پیام DocumentChange برای همان تغییر منطقی بازگردانده شوند.

زمینه های
document

Document

وضعیت جدید Document .

اگر mask تنظیم شده باشد، فقط شامل فیلدهایی است که به‌روزرسانی یا اضافه شده‌اند.

target_ids[]

int32

مجموعه ای از شناسه های هدف اهدافی که با این سند مطابقت دارند.

removed_target_ids[]

int32

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

حذف سند

یک Document حذف شده است.

ممکن است نتیجه چندین writes باشد، از جمله به‌روزرسانی‌هایی که آخرین آنها Document حذف کرده است.

اگر چندین هدف تحت تأثیر قرار گرفته باشند، ممکن است چندین پیام DocumentDelete برای همان حذف منطقی بازگردانده شوند.

زمینه های
document

string

نام منبع Document که حذف شد.

removed_target_ids[]

int32

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

read_time

Timestamp

مهر زمانی خوانده شده که در آن حذف مشاهده شد.

بزرگتر یا برابر با commit_time حذف.

DocumentMask

مجموعه ای از مسیرهای فیلد در یک سند. برای محدود کردن عملیات دریافت یا به‌روزرسانی یک سند به زیر مجموعه‌ای از فیلدهای آن استفاده می‌شود. این با ماسک‌های فیلد استاندارد متفاوت است، زیرا همیشه در محدوده یک Document قرار می‌گیرد و ماهیت پویای Value را در نظر می‌گیرد.

زمینه های
field_paths[]

string

لیست مسیرهای فیلد در ماسک. برای مرجع نحو مسیر فیلد به Document.fields مراجعه کنید.

DocumentRemove

یک Document از دید اهداف حذف شده است.

در صورتی ارسال می شود که سند دیگر مربوط به یک هدف نیست و در معرض دید نیست. اگر سرور نتواند مقدار جدید سند را ارسال کند، می‌تواند به جای DocumentDelete یا DocumentChange ارسال شود.

اگر چندین هدف تحت تأثیر قرار گرفته باشند، ممکن است چندین پیام DocumentRemove برای همان نوشتن یا حذف منطقی بازگردانده شوند.

زمینه های
document

string

نام منبع Document که از دید خارج شده است.

removed_target_ids[]

int32

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

read_time

Timestamp

مهر زمانی خواندن که در آن حذف مشاهده شد.

بزرگتر یا برابر با commit_time تغییر/حذف/حذف.

DocumentTransform

دگرگونی یک سند

زمینه های
document

string

نام سند برای تبدیل.

field_transforms[]

FieldTransform

فهرست تغییراتی که باید به ترتیب در فیلدهای سند اعمال شود. این نباید خالی باشد.

FieldTransform

تبدیل یک فیلد از سند.

زمینه های
field_path

string

مسیر میدان. برای مرجع نحو مسیر فیلد به Document.fields مراجعه کنید.

transform_type فیلد اتحادیه. تحول برای اعمال در این زمینه. transform_type فقط می تواند یکی از موارد زیر باشد:
set_to_server_value

ServerValue

فیلد را روی مقدار سرور داده شده تنظیم می کند.

increment

Value

مقدار داده شده را به مقدار فعلی فیلد اضافه می کند.

این باید یک عدد صحیح یا یک مقدار دوگانه باشد. اگر فیلد یک عدد صحیح یا دوگانه نباشد، یا اگر فیلد هنوز وجود نداشته باشد، تبدیل فیلد را روی مقدار داده شده تنظیم می کند. اگر یکی از مقدار داده شده یا مقدار فیلد فعلی دو برابر باشد، هر دو مقدار به عنوان دو برابر تفسیر می شوند. حساب دوگانه و نمایش مقادیر دوگانه از معنای IEEE 754 پیروی می کند. اگر سرریز عدد صحیح مثبت/منفی وجود داشته باشد، میدان به بزرگ‌ترین عدد صحیح مثبت/منفی حل می‌شود.

maximum

Value

فیلد را به حداکثر مقدار فعلی و مقدار داده شده تنظیم می کند.

این باید یک عدد صحیح یا یک مقدار دوگانه باشد. اگر فیلد یک عدد صحیح یا دوگانه نباشد، یا اگر فیلد هنوز وجود نداشته باشد، تبدیل فیلد را روی مقدار داده شده تنظیم می کند. اگر یک عملیات حداکثر در جایی اعمال شود که فیلد و مقدار ورودی از انواع مختلط هستند (یعنی - یکی عدد صحیح و یکی دوتایی است) فیلد نوع عملوند بزرگتر را می گیرد. اگر عملوندها معادل باشند (مثلاً 3 و 3.0)، فیلد تغییر نمی کند. 0، 0.0 و -0.0 همگی صفر هستند. حداکثر مقدار ذخیره شده صفر و مقدار ورودی صفر همیشه مقدار ذخیره شده است. حداکثر هر مقدار عددی x و NaN NaN است.

minimum

Value

فیلد را روی حداقل مقدار فعلی و مقدار داده شده تنظیم می کند.

این باید یک عدد صحیح یا یک مقدار دوگانه باشد. اگر فیلد یک عدد صحیح یا دوگانه نباشد، یا اگر فیلد هنوز وجود نداشته باشد، تبدیل فیلد را روی مقدار ورودی تنظیم می‌کند. اگر یک عملیات حداقل در جایی اعمال شود که فیلد و مقدار ورودی از انواع مختلط هستند (یعنی - یک عدد صحیح و یکی دو برابر است) فیلد نوع عملوند کوچکتر را می گیرد. اگر عملوندها معادل باشند (مثلاً 3 و 3.0)، فیلد تغییر نمی کند. 0، 0.0 و -0.0 همگی صفر هستند. حداقل مقدار ذخیره شده صفر و مقدار ورودی صفر همیشه مقدار ذخیره شده است. حداقل هر مقدار عددی x و NaN NaN است.

append_missing_elements

ArrayValue

اگر عناصر داده شده قبلاً در مقدار فیلد فعلی وجود ندارند، به ترتیب اضافه کنید. اگر فیلد یک آرایه نباشد، یا اگر فیلد هنوز وجود نداشته باشد، ابتدا روی آرایه خالی تنظیم می شود.

اعداد معادل از انواع مختلف (به عنوان مثال 3L و 3.0) هنگام بررسی عدم وجود یک مقدار برابر در نظر گرفته می شوند. NaN برابر با NaN و Null برابر با Null است. اگر ورودی حاوی چندین مقدار معادل باشد، تنها مقدار اول در نظر گرفته می شود.

transform_result مربوطه مقدار تهی خواهد بود.

remove_all_from_array

ArrayValue

تمام عناصر داده شده را از آرایه موجود در فیلد حذف کنید. اگر فیلد یک آرایه نباشد، یا اگر فیلد هنوز وجود نداشته باشد، روی آرایه خالی تنظیم می شود.

اعداد معادل انواع مختلف (مانند 3L و 3.0) هنگام تصمیم گیری در مورد حذف یک عنصر برابر در نظر گرفته می شوند. NaN برابر با NaN و Null برابر با Null است. اگر موارد تکراری وجود داشته باشد، تمام مقادیر معادل حذف می شود.

transform_result مربوطه مقدار تهی خواهد بود.

ServerValue

مقداری که توسط سرور محاسبه می شود.

Enums
SERVER_VALUE_UNSPECIFIED نامشخص این مقدار نباید استفاده شود.
REQUEST_TIME زمانی که سرور درخواست را با دقت میلی ثانیه پردازش کرد. اگر در یک تراکنش در چندین فیلد (اسناد یکسان یا متفاوت) استفاده شود، تمام فیلدها همان مهر زمانی سرور را دریافت خواهند کرد.

آمار اعدام

آمار اجرای پرس و جو

زمینه های
results_returned

int64

تعداد کل نتایج بازگردانده شده، از جمله اسناد، پیش بینی ها، نتایج تجمیع، کلیدها.

execution_duration

Duration

کل زمان برای اجرای پرس و جو در باطن.

read_operations

int64

کل عملیات خواندن قابل پرداخت

debug_stats

Struct

اشکال زدایی آمار از اجرای پرس و جو. توجه داشته باشید که با تکامل Firestore، آمار اشکال زدایی در معرض تغییر است. ممکن است شامل موارد زیر باشد: { "indexes_entries_scanned": "1000"، "documents_scanned": "20"، "billing_details" : { "documents_billable": "20", "index_entries_billable": "1000", "min_query_cost": "0" } }

ExistenceFilter

خلاصه ای از تمام اسنادی که با یک هدف مشخص مطابقت دارند.

زمینه های
target_id

int32

شناسه هدفی که این فیلتر برای آن اعمال می شود.

count

int32

تعداد کل اسنادی که با target_id مطابقت دارند.

اگر با تعداد اسنادی که در مشتری مطابقت دارند متفاوت باشد، مشتری باید به صورت دستی تعیین کند که کدام اسناد دیگر با هدف مطابقت ندارند.

کلاینت می‌تواند از فیلتر شکوفایی unchanged_names برای کمک به این تعیین با آزمایش همه نام‌های سند در برابر فیلتر استفاده کند. اگر نام سند در فیلتر نباشد، به این معنی است که سند دیگر با هدف مطابقت ندارد.

unchanged_names

BloomFilter

فیلتر شکوفه‌ای که علی‌رغم نامش حاوی رمزگذاری‌های UTF-8 بایتی نام منابع همه اسنادی است که با target_id مطابقت دارند، به شکل projects/{project_id}/databases/{database_id}/documents/{document_path} .

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

Metrics را توضیح دهید

معیارهای پرس و جو را توضیح دهید.

زمینه های
plan_summary

PlanSummary

اطلاعات مرحله برنامه ریزی برای پرس و جو

execution_stats

ExecutionStats

آمار جمع آوری شده از اجرای پرس و جو. فقط زمانی ارائه می شود که ExplainOptions.analyze روی true تنظیم شده باشد.

توضیح گزینه ها

گزینه های مربوط به پرس و جو را توضیح دهید.

زمینه های
analyze

bool

اختیاری. آیا این پرس و جو را اجرا کنیم.

در صورت false (پیش‌فرض)، پرس‌وجو برنامه‌ریزی می‌شود و تنها معیارهای مربوط به مراحل برنامه‌ریزی را برمی‌گرداند.

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

GetDocumentRequest

درخواست Firestore.GetDocument .

زمینه های
name

string

ضروری. نام منبع سند برای دریافت. در قالب: projects/{project_id}/databases/{database_id}/documents/{document_path} .

mask

DocumentMask

زمینه هایی برای بازگشت. اگر تنظیم نشود، همه فیلدها را برمی گرداند.

اگر سند دارای فیلدی باشد که در این ماسک وجود ندارد، آن فیلد در پاسخ بازگردانده نمی شود.

اتحاد فیلد consistency_selector . حالت سازگاری برای این معامله. اگر تنظیم نشود، به طور پیش‌فرض روی سازگاری قوی تنظیم می‌شود. consistency_selector تنها می تواند یکی از موارد زیر باشد:
transaction

bytes

سند را در یک معامله می خواند.

read_time

Timestamp

نسخه سند را در زمان معین می خواند.

این باید یک مهر زمانی دقیق میکروثانیه در یک ساعت گذشته باشد، یا اگر بازیابی نقطه در زمان فعال باشد، می‌تواند یک مهر زمانی کامل در 7 روز گذشته باشد.

ListCollectionIdsRequest

درخواست Firestore.ListCollectionIds .

زمینه های
parent

string

ضروری. سند مادر. در قالب: projects/{project_id}/databases/{database_id}/documents/{document_path} . به عنوان مثال: projects/my-project/databases/my-database/documents/chatrooms/my-chatroom

page_size

int32

حداکثر تعداد نتایج برای بازگشت.

page_token

string

یک نشانه صفحه باید مقداری از ListCollectionIdsResponse باشد.

اتحاد فیلد consistency_selector . حالت سازگاری برای این درخواست. اگر تنظیم نشده باشد، به طور پیش‌فرض روی سازگاری قوی تنظیم می‌شود. consistency_selector تنها می تواند یکی از موارد زیر باشد:
read_time

Timestamp

اسناد را همانطور که در زمان معین بودند می خواند.

این باید یک مهر زمانی دقیق میکروثانیه در یک ساعت گذشته باشد، یا اگر بازیابی نقطه در زمان فعال باشد، می‌تواند یک مهر زمانی کامل در 7 روز گذشته باشد.

ListCollectionIdsResponse

پاسخ از Firestore.ListCollectionIds .

زمینه های
collection_ids[]

string

شناسه های مجموعه

next_page_token

string

نشانه صفحه ای که ممکن است برای ادامه لیست استفاده شود.

ListDocumentsRequest

درخواست Firestore.ListDocuments .

زمینه های
parent

string

ضروری. نام منبع والد در قالب: projects/{project_id}/databases/{database_id}/documents or projects/{project_id}/databases/{database_id}/documents/{document_path} .

به عنوان مثال: projects/my-project/databases/my-database/documents یا projects/my-project/databases/my-database/documents/chatrooms/my-chatroom

collection_id

string

اختیاری. شناسه مجموعه، نسبت به parent ، به فهرست.

به عنوان مثال: chatrooms یا messages .

این اختیاری است و هنگامی که ارائه نشده باشد، Firestore اسناد همه مجموعه‌ها را تحت parent ارائه شده فهرست می‌کند.

page_size

int32

اختیاری. حداکثر تعداد اسناد برای بازگشت در یک پاسخ.

Firestore ممکن است کمتر از این مقدار را بازگرداند.

page_token

string

اختیاری. یک نشانه صفحه، دریافت شده از پاسخ قبلی ListDocuments .

این را برای بازیابی صفحه بعدی ارائه کنید. هنگام صفحه بندی، تمام پارامترهای دیگر (به استثنای page_size ) باید با مقادیر تنظیم شده در درخواستی که نشانه صفحه را ایجاد کرده است مطابقت داشته باشند.

order_by

string

اختیاری. سفارش اختیاری اسناد برای بازگشت.

به عنوان مثال: priority desc, __name__ desc .

این منعکس کننده ORDER BY مورد استفاده در جستارهای Firestore اما در نمایش رشته ای است. در صورت غیبت، اسناد بر اساس __name__ ASC مرتب می شوند.

mask

DocumentMask

اختیاری. زمینه هایی برای بازگشت. اگر تنظیم نشود، همه فیلدها را برمی گرداند.

اگر سندی دارای فیلدی باشد که در این ماسک وجود ندارد، آن فیلد در پاسخ بازگردانده نخواهد شد.

show_missing

bool

اگر لیست باید اسناد گم شده را نشان دهد.

اگر سندی وجود نداشته باشد، وجود ندارد، اما اسناد فرعی در زیر آن وجود دارد. در صورت درست بودن، چنین اسناد گمشده با یک کلید بازگردانده می‌شوند، اما فیلدها، create_time ، یا update_time set ندارند.

درخواست‌های دارای show_missing ممکن است where یا order_by را مشخص نکنند.

اتحاد فیلد consistency_selector . حالت سازگاری برای این معامله. اگر تنظیم نشده باشد، به طور پیش‌فرض روی سازگاری قوی تنظیم می‌شود. consistency_selector تنها می تواند یکی از موارد زیر باشد:
transaction

bytes

خواندن را به عنوان بخشی از یک تراکنش فعال انجام دهید.

read_time

Timestamp

خواندن را در زمان مقرر انجام دهید.

این باید یک مهر زمانی دقیق میکروثانیه در یک ساعت گذشته باشد، یا اگر بازیابی نقطه در زمان فعال باشد، می‌تواند یک مهر زمانی کامل در 7 روز گذشته باشد.

ListDocumentsResponse

پاسخ برای Firestore.ListDocuments .

زمینه های
documents[]

Document

اسناد یافت شده

next_page_token

string

نشانه ای برای بازیابی صفحه بعدی اسناد.

اگر این قسمت حذف شود، هیچ صفحه بعدی وجود ندارد.

ListenRequest

یک درخواست برای Firestore.Listen

زمینه های
database

string

ضروری. نام پایگاه داده در قالب: projects/{project_id}/databases/{database_id} .

labels

map<string, string>

برچسب های مرتبط با این هدف تغییر می کنند.

فیلد اتحادیه target_change . هدف پشتیبانی شده تغییر می کند. target_change تنها می تواند یکی از موارد زیر باشد:
add_target

Target

هدفی برای افزودن به این جریان.

remove_target

int32

شناسه هدفی که باید از این جریان حذف شود.

ListenResponse

پاسخ برای Firestore.Listen . Listen.

زمینه های
response_type فیلد اتحادیه. پاسخ های پشتیبانی شده response_type می تواند تنها یکی از موارد زیر باشد:
target_change

TargetChange

اهداف تغییر کرده است.

document_change

DocumentChange

یک Document تغییر کرده است

document_delete

DocumentDelete

یک Document حذف شده است.

document_remove

DocumentRemove

یک Document از یک هدف حذف شده است (زیرا دیگر مربوط به آن هدف نیست).

filter

ExistenceFilter

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

زمانی که ممکن است اسناد از هدف داده شده حذف شده باشند، اما اسناد دقیق ناشناخته باشند، برگردانده می شود.

MapValue

یک مقدار نقشه

زمینه های
fields

map<string, Value >

فیلدهای نقشه

کلیدهای نقشه نشان دهنده نام فیلدها هستند. نام فیلدهای مطابق با عبارت منظم __.*__ رزرو شده است. نام فیلدهای رزرو شده به جز در زمینه های مستند خاص ممنوع است. کلیدهای نقشه که به صورت UTF-8 نشان داده می شوند، نباید بیش از 1500 بایت باشند و نمی توانند خالی باشند.

PartitionQueryRequest

درخواست Firestore.PartitionQuery .

زمینه های
parent

string

ضروری. نام منبع والد در قالب: projects/{project_id}/databases/{database_id}/documents . نام منابع سند پشتیبانی نمی شود. فقط نام منابع پایگاه داده را می توان مشخص کرد.

partition_count

int64

حداکثر تعداد نقاط پارتیشن مورد نظر. پارتیشن ها ممکن است در چندین صفحه از نتایج بازگردانده شوند. عدد باید مثبت باشد. تعداد واقعی پارتیشن های بازگشتی ممکن است کمتر باشد.

به عنوان مثال، ممکن است این مقدار یک کمتر از تعداد پرس‌و‌جوهای موازی اجرا شود، یا در اجرای یک کار خط لوله داده، یک کمتر از تعداد کارگران یا نمونه‌های محاسباتی موجود تنظیم شود.

page_token

string

مقدار next_page_token از فراخوانی قبلی به PartitionQuery برگردانده شد که ممکن است برای دریافت مجموعه‌ای از نتایج استفاده شود. هیچ تضمینی برای سفارش بین مجموعه نتایج وجود ندارد. بنابراین، استفاده از چندین مجموعه از نتایج مستلزم ادغام مجموعه های مختلف نتایج است.

برای مثال، دو تماس بعدی با استفاده از page_token ممکن است برگردد:

  • مکان نما B، مکان نما M، مکان نما Q
  • مکان نما A، مکان نما U، مکان نما W

برای به دست آوردن یک مجموعه کامل از نتایج مرتب شده با توجه به نتایج جستجوی ارائه شده به PartitionQuery، مجموعه نتایج باید ادغام شوند: مکان نما A، مکان نما B، مکان نما M، مکان نما Q، مکان نما U، مکان نما W.

page_size

int32

حداکثر تعداد پارتیشن‌هایی که باید در این تماس بازگردانده شوند، مشروط به partition_count .

برای مثال، اگر partition_count = 10 و page_size = 8، اولین فراخوانی به PartitionQuery تا 8 پارتیشن و در صورت وجود نتایج بیشتر، یک next_page_token برمی‌گرداند. یک فراخوان دوم به PartitionQuery حداکثر 2 پارتیشن را برمی گرداند تا مجموع 10 پارتیشن مشخص شده در partition_count را تکمیل کند.

فیلد اتحادیه query_type . پرس و جو برای پارتیشن بندی. query_type فقط می تواند یکی از موارد زیر باشد:
structured_query

StructuredQuery

یک پرس و جو ساختار یافته پرس و جو باید مجموعه ای را با همه فرزندان مشخص کند و بر اساس نام صعودی مرتب شود. سایر فیلترها، تعداد دفعات سفارش، محدودیت‌ها، افست‌ها و نشانگرهای شروع/پایان پشتیبانی نمی‌شوند.

اتحاد فیلد consistency_selector . حالت سازگاری برای این درخواست. اگر تنظیم نشده باشد، به طور پیش‌فرض روی سازگاری قوی تنظیم می‌شود. consistency_selector تنها می تواند یکی از موارد زیر باشد:
read_time

Timestamp

اسناد را همانطور که در زمان معین بودند می خواند.

این باید یک مهر زمانی دقیق میکروثانیه در یک ساعت گذشته باشد، یا اگر بازیابی نقطه در زمان فعال باشد، می‌تواند یک مهر زمانی کامل در 7 روز گذشته باشد.

PartitionQueryResponse

پاسخ برای Firestore.PartitionQuery .

زمینه های
partitions[]

Cursor

نتایج پارتیشن هر پارتیشن یک نقطه تقسیم است که می تواند توسط RunQuery به عنوان نقطه شروع یا پایان برای نتایج پرس و جو استفاده شود. درخواست های RunQuery باید با همان پرس و جوی ارائه شده به این درخواست PartitionQuery انجام شود. نشانگرهای پارتیشن مطابق با همان ترتیبی که نتایج پرس و جو ارائه شده به PartitionQuery ترتیب داده می شود.

به عنوان مثال، اگر یک درخواست PartitionQuery نشانگرهای پارتیشن A و B را برمی گرداند، اجرای سه پرس و جو زیر کل مجموعه نتایج پرس و جو اصلی را برمی گرداند:

  • query، end_at A
  • پرس و جو، start_at A، end_at B
  • پرس و جو، start_at B

یک نتیجه خالی ممکن است نشان دهد که پرس و جو نتایج بسیار کمی برای پارتیشن بندی دارد، یا اینکه پرس و جو هنوز برای پارتیشن بندی پشتیبانی نمی شود.

next_page_token

string

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

خلاصه برنامه

اطلاعات مرحله برنامه ریزی برای پرس و جو

زمینه های
indexes_used[]

Struct

شاخص های انتخاب شده برای پرس و جو. برای مثال: [ {"query_scope": "Collection", "properties": "(foo ASC, name ASC)"}, {"query_scope": "Collection"، "properties": "(bar ASC, name ASC)" } ]

پیش شرط

یک پیش شرط در یک سند که برای عملیات مشروط استفاده می شود.

زمینه های
condition_type فیلد اتحادیه. نوع پیش شرط. condition_type می تواند تنها یکی از موارد زیر باشد:
exists

bool

وقتی روی true تنظیم شود، سند هدف باید وجود داشته باشد. وقتی روی false تنظیم می شود، سند هدف نباید وجود داشته باشد.

update_time

Timestamp

هنگام تنظیم، سند هدف باید وجود داشته باشد و آخرین بار در آن زمان به روز شده باشد. مُهر زمان باید تراز میکروثانیه باشد.

درخواست بازگشت

درخواست Firestore.Rollback .

زمینه های
database

string

ضروری. نام پایگاه داده در قالب: projects/{project_id}/databases/{database_id} .

transaction

bytes

ضروری. معامله به عقب برگرداند.

RunAggregationQueryRequest

درخواست Firestore.RunAggregationQuery .

زمینه های
parent

string

ضروری. نام منابع والدین. در قالب: projects/{project_id}/databases/{database_id}/documents یا projects/{project_id}/databases/{database_id}/documents/{document_path} . به عنوان مثال: projects/my-project/databases/my-database/documents یا projects/my-project/databases/my-database/documents/chatrooms/my-chatroom

explain_options

ExplainOptions

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

Union Field query_type . پرس و جو برای اجرا. query_type فقط می تواند یکی از موارد زیر باشد:
structured_aggregation_query

StructuredAggregationQuery

پرس و جو جمع آوری

Union Field consistency_selector . حالت قوام برای پرس و جو ، پیش فرض به قوام قوی. consistency_selector فقط می تواند یکی از موارد زیر باشد:
transaction

bytes

تجمع را در یک معامله از قبل فعال اجرا کنید.

مقدار در اینجا شناسه معامله مات برای اجرای پرس و جو در است.

new_transaction

TransactionOptions

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

شناسه معامله جدید به عنوان اولین پاسخ در جریان بازگردانده می شود.

read_time

Timestamp

پرس و جو را در جدول زمانی داده شده اجرا می کند.

این باید در طی یک ساعت گذشته یک جدول زمانی دقیق میکرو ثانیه باشد ، یا اگر بازیابی نقطه به موقع فعال شود ، علاوه بر این می تواند در 7 روز گذشته یک جدول زمانی کامل باشد.

RunaggregationQueryResponse

پاسخ برای Firestore.RunAggregationQuery .

زمینه های
result

AggregationResult

یک نتیجه تجمع واحد.

هنگام گزارش پیشرفت جزئی وجود ندارد.

transaction

bytes

معامله ای که به عنوان بخشی از این درخواست آغاز شد.

فقط در هنگام درخواست درخواست درخواست برای شروع معامله جدید ، در اولین پاسخ ارائه می شود.

read_time

Timestamp

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

اگر پرس و جو نتیجه ای بازگرداند ، پاسخی با read_time و result ای ارسال نمی شود و این نشان دهنده زمان اجرای پرس و جو است.

explain_metrics

ExplainMetrics

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

RunQueryRequest

درخواست Firestore.RunQuery .

زمینه های
parent

string

ضروری. نام منابع والدین. در قالب: projects/{project_id}/databases/{database_id}/documents یا projects/{project_id}/databases/{database_id}/documents/{document_path} . به عنوان مثال: projects/my-project/databases/my-database/documents یا projects/my-project/databases/my-database/documents/chatrooms/my-chatroom

explain_options

ExplainOptions

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

Union Field query_type . پرس و جو برای اجرا. query_type فقط می تواند یکی از موارد زیر باشد:
structured_query

StructuredQuery

یک پرس و جو ساختاری

Union Field consistency_selector . حالت قوام برای این معامله. اگر تنظیم نشده باشد ، به طور پیش فرض به قوام قوی. consistency_selector فقط می تواند یکی از موارد زیر باشد:
transaction

bytes

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

مقدار در اینجا شناسه معامله مات برای اجرای پرس و جو در است.

new_transaction

TransactionOptions

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

read_time

Timestamp

اسناد را همانطور که در زمان معین بودند ، می خواند.

این باید در طی یک ساعت گذشته یک جدول زمانی دقیق میکرو ثانیه باشد ، یا اگر بازیابی نقطه به موقع فعال شود ، علاوه بر این می تواند در 7 روز گذشته یک جدول زمانی کامل باشد.

پاسخ

پاسخ Firestore.RunQuery .

زمینه های
transaction

bytes

معامله ای که به عنوان بخشی از این درخواست آغاز شد. فقط در اولین پاسخ قابل تنظیم است ، و تنها در صورت تنظیم RunQueryRequest.new_transaction در درخواست تنظیم شده است. در صورت تنظیم ، هیچ قسمت دیگری در این پاسخ تنظیم نمی شود.

document

Document

نتیجه پرس و جو ، هنگام گزارش پیشرفت جزئی تنظیم نشده است.

read_time

Timestamp

زمانی که سند خوانده شد. این ممکن است از نظر یکنواخت افزایش یابد. در این حالت ، اسناد قبلی در جریان نتیجه تضمین می شود که بین read_time و این یکی تغییر نکرده باشد.

اگر پرس و جو نتیجه ای بازگرداند ، پاسخی با read_time و هیچ document ارسال نمی شود و این نشان دهنده زمان اجرای پرس و جو است.

skipped_results

int32

تعداد نتایج حاصل از جبران بین آخرین پاسخ و پاسخ فعلی.

explain_metrics

ExplainMetrics

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

Union Field continuation_selector . حالت ادامه پرس و جو. در صورت وجود ، نشان می دهد جریان پاسخ پرس و جو فعلی به پایان رسیده است. این می تواند با یا بدون document موجود باشد ، اما در صورت تنظیم ، نتیجه بیشتری بازگردانده نمی شود. continuation_selector تنها می تواند یکی از موارد زیر باشد:
done

bool

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

ساختاری

پرس و جو Firestore برای اجرای یک جمع بر روی یک StructuredQuery .

زمینه های
aggregations[]

Aggregation

اختیاری. مجموعه ای از تجمع ها برای استفاده از نتایج structured_query .

نیاز دارد:

  • حداقل یک و حداکثر پنج جمع در هر پرس و جو.
Union Field query_type . پرس و جو پایه برای جمع شدن. query_type فقط می تواند یکی از موارد زیر باشد:
structured_query

StructuredQuery

پرس و جو ساختاری تو در تو.

تجمع

تجمع را تعریف می کند که یک نتیجه واحد ایجاد می کند.

زمینه های
alias

string

اختیاری. نام اختیاری قسمت برای ذخیره نتیجه جمع در.

در صورت عدم ارائه ، Firestore یک نام پیش فرض را به دنبال Format field_<incremental_id++> انتخاب می کند. مثلا:

AGGREGATE
  COUNT_UP_TO(1) AS count_up_to_1,
  COUNT_UP_TO(2),
  COUNT_UP_TO(3) AS count_up_to_3,
  COUNT(*)
OVER (
  ...
);

تبدیل می شود:

AGGREGATE
  COUNT_UP_TO(1) AS count_up_to_1,
  COUNT_UP_TO(2) AS field_1,
  COUNT_UP_TO(3) AS count_up_to_3,
  COUNT(*) AS field_2
OVER (
  ...
);

نیاز دارد:

  • باید در تمام نام مستعارهای تجمع بی نظیر باشد.
  • محدودیت های document field name مطابق با محدودیت نام.
operator میدان اتحادیه. نوع تجمع برای انجام ، مورد نیاز. operator می تواند تنها یکی از موارد زیر باشد:
count

Count

جمع کننده.

sum

Sum

جمع جمع کننده

avg

Avg

جمع کننده متوسط.

میانگین

میانگین مقادیر قسمت درخواست شده.

  • فقط مقادیر عددی جمع می شوند. تمام مقادیر غیر عددی از جمله NULL پرش می شوند.

  • اگر مقادیر جمع شده حاوی NaN باشد ، NaN برمی گرداند. بی نهایت ریاضی از استانداردهای IEEE-754 پیروی می کند.

  • اگر مجموعه مقدار جمع شده خالی باشد ، NULL می شود.

  • همیشه نتیجه را به عنوان دو برابر برمی گرداند.

زمینه های
field

FieldReference

زمینه برای جمع آوری.

شمردن

تعداد اسنادی که مطابق با پرس و جو است.

عملکرد جمع آوری COUNT(*) بر روی کل سند عمل می کند ، بنابراین نیازی به مرجع میدانی ندارد.

زمینه های
up_to

Int64Value

اختیاری. محدودیت اختیاری در حداکثر تعداد اسناد برای شمارش.

این راهی برای تعیین حد بالایی در تعداد اسناد برای اسکن ، محدود کردن تأخیر و هزینه فراهم می کند.

نامشخص به عنوان هیچ محدودیتی تعبیر می شود.

مثال سطح بالا:

AGGREGATE COUNT_UP_TO(1000) OVER ( SELECT * FROM k );

نیاز دارد:

  • در صورت وجود باید بیشتر از صفر باشد.

مجموع

مجموع مقادیر قسمت درخواست شده.

  • فقط مقادیر عددی جمع می شوند. تمام مقادیر غیر عددی از جمله NULL پرش می شوند.

  • اگر مقادیر جمع شده حاوی NaN باشد ، NaN برمی گرداند. بی نهایت ریاضی از استانداردهای IEEE-754 پیروی می کند.

  • اگر مجموعه مقدار جمع شده خالی باشد ، 0 را برمی گرداند.

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

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

زمینه های
field

FieldReference

زمینه برای جمع آوری.

ساختاری

یک پرس و جو آتش نشانی.

مراحل پرس و جو به ترتیب زیر اجرا می شود: 1. از 2. که در آن 3. سفارش_بی + start_at + end_at 5. افست 6. محدودیت

زمینه های
select

Projection

مجموعه اختیاری از قسمت ها برای بازگشت.

این به عنوان یک DocumentMask بر روی اسناد برگرفته از یک پرس و جو عمل می کند. هنگامی که تنظیم نشده است ، فرض کنید که تماس گیرنده می خواهد همه زمینه ها برگردند.

from[]

CollectionSelector

مجموعه ها برای پرس و جو.

where

Filter

فیلتر برای اعمال

order_by[]

Order

دستور اعمال در مورد نتایج پرس و جو.

Firestore به تماس گیرندگان اجازه می دهد تا سفارش کامل ، سفارش جزئی یا اصلاً سفارش را ارائه دهند. در همه موارد ، Firestore از طریق قوانین زیر نظم پایدار را تضمین می کند:

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

زمینه ها با همان جهت مرتب سازی شده به عنوان آخرین مرتبه مشخص شده یا "صعودی" در صورت عدم تعیین سفارش ، ضمیمه می شوند. مثلا:

  • ORDER BY a ORDER BY a ASC, __name__ ASC می شود
  • ORDER BY a DESC ORDER BY a DESC, __name__ DESC
  • WHERE a > 1 به WHERE a > 1 ORDER BY a ASC, __name__ ASC
  • WHERE __name__ > ... AND a > 1 به WHERE __name__ > ... AND a > 1 ORDER BY a ASC, __name__ ASC
start_at

Cursor

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

ترتیب مجموعه نتیجه براساس ORDER BY بند پرس و جو اصلی است.

SELECT * FROM k WHERE a = 1 AND b > 2 ORDER BY b ASC, __name__ ASC;

نتایج این پرس و جو توسط (b ASC, __name__ ASC) سفارش داده می شود.

نشانگرها می توانند به سفارش کامل یا پیشوند محل مراجعه کنند ، اگرچه نمی تواند زمینه های بیشتری را نسبت به آنچه در ORDER BY ارائه شده است ، ارجاع دهد.

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

  • START BEFORE (2, /k/123) : پرس و جو را درست قبل از a = 1 AND b > 2 AND __name__ > /k/123 شروع کنید.
  • START AFTER (10) : پرس و جو را درست بعد از a = 1 AND b > 10 شروع کنید.

بر خلاف OFFSET که نیاز به اسکن بیش از اولین نتایج N برای پرش دارد ، یک مکان نما شروع به پرس و جو اجازه می دهد تا در موقعیت منطقی شروع شود. این موقعیت برای مطابقت با نتیجه واقعی لازم نیست ، بلکه از این موقعیت به جلو اسکن می شود تا سند بعدی را پیدا کند.

نیاز دارد:

  • تعداد مقادیر نمی تواند بیشتر از تعداد فیلدهای مشخص شده در ORDER BY بند باشد.
end_at

Cursor

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

این شبیه به START_AT است اما با کنترل موقعیت پایان به جای موقعیت شروع.

نیاز دارد:

  • تعداد مقادیر نمی تواند بیشتر از تعداد فیلدهای مشخص شده در ORDER BY بند باشد.
offset

int32

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

این امر پس از محدودیت های مشخص شده توسط WHERE ، START AT ، و END AT اما قبل از بند LIMIT .

نیاز دارد:

  • در صورت مشخص شدن مقدار باید بیشتر یا برابر با صفر باشد.
limit

Int32Value

حداکثر تعداد نتایج برای بازگشت.

پس از همه محدودیت های دیگر اعمال می شود.

نیاز دارد:

  • در صورت مشخص شدن مقدار باید بیشتر یا برابر با صفر باشد.
find_nearest

FindNearest

اختیاری. نزدیکترین جستجوی همسایگان بالقوه.

پس از سایر فیلترها و سفارشات اعمال می شود.

نزدیکترین وکتور تعبیه شده را به بردار پرس و جو داده شده پیدا می کند.

جمع کننده

مجموعه ای از مجموعه ، مانند messages as m1 .

زمینه های
collection_id

string

شناسه مجموعه هنگام تنظیم ، فقط مجموعه ها را با این شناسه انتخاب می کند.

all_descendants

bool

هنگامی که نادرست است ، فقط مجموعه هایی را انتخاب می کند که فرزندان فوری parent هستند که در RunQueryRequest حاوی مشخص شده اند. هنگامی که درست است ، همه مجموعه های فرزندان را انتخاب می کند.

ترکیب کننده

فیلتری که چندین فیلتر دیگر را با استفاده از اپراتور داده شده ادغام می کند.

زمینه های
op

Operator

اپراتور برای ترکیب چندین فیلتر.

filters[]

Filter

لیست فیلترها برای ترکیب.

نیاز دارد:

  • حداقل یک فیلتر موجود است.

اپراتور

یک اپراتور فیلتر کامپوزیت.

نماد
OPERATOR_UNSPECIFIED نامشخص این مقدار نباید استفاده شود.
AND برای برآورده کردن تمام فیلترهای ترکیبی ، اسناد لازم است.
OR برای برآورده کردن حداقل یکی از فیلترهای ترکیبی ، اسناد لازم است.

جهت

یک جهت مرتب سازی

نماد
DIRECTION_UNSPECIFIED نامشخص
ASCENDING صعودی.
DESCENDING نزول

میدان

یک فیلتر در یک قسمت خاص.

زمینه های
field

FieldReference

فیلد فیلتر شده توسط.

op

Operator

اپراتور برای فیلتر کردن توسط.

value

Value

مقدار مقایسه با.

اپراتور

یک اپراتور فیلتر میدانی.

نماد
OPERATOR_UNSPECIFIED نامشخص این مقدار نباید استفاده شود.
LESS_THAN

field داده شده کمتر از value داده شده است.

نیاز دارد:

  • آن field ابتدا در order_by آمده است.
LESS_THAN_OR_EQUAL

field داده شده کمتر یا مساوی با value داده شده است.

نیاز دارد:

  • آن field ابتدا در order_by آمده است.
GREATER_THAN

field داده شده بیشتر از value داده شده است.

نیاز دارد:

  • آن field ابتدا در order_by آمده است.
GREATER_THAN_OR_EQUAL

field داده شده بیشتر یا مساوی با value داده شده است.

نیاز دارد:

  • آن field ابتدا در order_by آمده است.
EQUAL field داده شده برابر با value داده شده است.
NOT_EQUAL

field داده شده با value داده شده برابر نیست.

نیاز دارد:

  • هیچ چیز دیگری NOT_EQUAL ، NOT_IN ، IS_NOT_NULL ، یا IS_NOT_NAN .
  • آن field ابتدا در order_by می آید.
ARRAY_CONTAINS field داده شده آرایه ای است که حاوی value داده شده است.
IN

field داده شده برابر با حداقل یک مقدار در آرایه داده شده است.

نیاز دارد:

  • این value یک ArrayValue غیر خالی است که در معرض محدودیت های اختلال قرار دارد.
  • NO NOT_IN در همان پرس و جو.
ARRAY_CONTAINS_ANY

field داده شده آرایه ای است که شامل هر یک از مقادیر موجود در آرایه داده شده است.

نیاز دارد:

  • این value یک ArrayValue غیر خالی است که در معرض محدودیت های اختلال قرار دارد.
  • هیچ فیلتر ARRAY_CONTAINS_ANY در همان اختلال.
  • NO NOT_IN در همان پرس و جو.
NOT_IN

مقدار field در آرایه داده شده نیست.

نیاز دارد:

  • این value یک ArrayValue غیر خالی با حداکثر 10 مقدار است.
  • هیچ چیز دیگری OR ، IN ، ARRAY_CONTAINS_ANY ، NOT_IN ، NOT_EQUAL ، IS_NOT_NULL ، یا IS_NOT_NAN .
  • آن field ابتدا در order_by می آید.

خط مقدم

اشاره به یک زمینه در یک سند ، به عنوان مثال: stats.operations .

زمینه های
field_path

string

اشاره به یک زمینه در یک سند.

نیاز دارد:

  • باید یک بخش از بخش های Dot-Delimited ( . ) باشد ، جایی که هر بخش با محدودیت های document field name مطابقت دارد.

فیلتر کنید

یک فیلتر

زمینه های
filter_type UNION FIELD. نوع فیلتر filter_type فقط می تواند یکی از موارد زیر باشد:
composite_filter

CompositeFilter

یک فیلتر کامپوزیت.

field_filter

FieldFilter

یک فیلتر در یک زمینه سند.

unary_filter

UnaryFilter

فیلتر که دقیقاً یک آرگومان را می گیرد.

پیدا کردن

نزدیکترین پیکربندی جستجوی همسایگان.

زمینه های
vector_field

FieldReference

ضروری. یک قسمت بردار ایندکس برای جستجو. فقط اسنادی که حاوی بردارهایی هستند که ابعاد آنها با query_veector مطابقت دارد می توانند برگردانده شوند.

query_vector

Value

ضروری. وکتور پرس و جو مورد نظر ما. باید یک بردار بیش از 2048 ابعاد باشد.

distance_measure

DistanceMeasure

ضروری. اندازه گیری فاصله برای استفاده ، مورد نیاز.

limit

Int32Value

ضروری. تعداد نزدیکترین همسایگان برای بازگشت. باید یک عدد صحیح مثبت از 1000 باشد.

اندازه

اندازه گیری فاصله برای استفاده در هنگام مقایسه بردارها.

نماد
DISTANCE_MEASURE_UNSPECIFIED نباید تنظیم شود
EUCLIDEAN فاصله اقلیدسی بین بردارها را اندازه گیری می کند. برای کسب اطلاعات بیشتر به اقلیدسی مراجعه کنید
COSINE بردارها را بر اساس زاویه بین آنها مقایسه می کند ، که به شما امکان می دهد شباهت هایی را که بر اساس بزرگی بردارها نیست ، اندازه گیری کنید. ما توصیه می کنیم به جای فاصله کنجین ، که از نظر ریاضی معادل عملکرد بهتر است ، از dot_product با بردارهای نرمال واحد استفاده کنید. برای کسب اطلاعات بیشتر به شباهت Cosine مراجعه کنید.
DOT_PRODUCT شبیه به كسین اما تحت تأثیر بزرگی بردارها قرار دارد. برای کسب اطلاعات بیشتر به محصول DOT مراجعه کنید.

سفارش

یک سفارش در یک زمینه.

زمینه های
field

FieldReference

زمینه برای سفارش توسط.

direction

Direction

جهت سفارش توسط. پیش ASCENDING .

فرافکنی

پیش بینی زمینه های سند برای بازگشت.

زمینه های
fields[]

FieldReference

زمینه های بازگشت.

اگر خالی باشد ، همه زمینه ها برگردانده می شوند. فقط برای بازگشت نام سند ، از ['__name__'] استفاده کنید.

خودکشی

یک فیلتر با یک عملگر واحد.

زمینه های
op

Operator

اپراتور Unary برای اعمال.

Union Field operand_type . آرگومان فیلتر. operand_type فقط می تواند یکی از موارد زیر باشد:
field

FieldReference

زمینه ای که برای استفاده از اپراتور در آن استفاده شود.

اپراتور

یک اپراتور Unary.

نماد
OPERATOR_UNSPECIFIED نامشخص این مقدار نباید استفاده شود.
IS_NAN field داده شده برابر با NaN است.
IS_NULL field داده شده برابر با NULL است.
IS_NOT_NAN

field داده شده برابر با NaN نیست.

نیاز دارد:

  • هیچ چیز دیگری NOT_EQUAL ، NOT_IN ، IS_NOT_NULL ، یا IS_NOT_NAN .
  • آن field ابتدا در order_by می آید.
IS_NOT_NULL

field داده شده برابر با NULL نیست.

نیاز دارد:

  • یک NOT_EQUAL ، NOT_IN ، IS_NOT_NULL ، یا IS_NOT_NAN .
  • آن field ابتدا در order_by می آید.

هدف

مشخصات مجموعه ای از اسناد برای گوش دادن.

زمینه های
target_id

int32

شناسه هدف که هدف را در جریان مشخص می کند. باید یک عدد مثبت و غیر صفر باشد.

اگر target_id 0 (یا نامشخص) باشد ، سرور شناسه این هدف را اختصاص می دهد و آن را در یک TargetChange::ADD . هنگامی که یک هدف با target_id=0 اضافه شد ، تمام اهداف بعدی نیز باید دارای target_id=0 باشند. اگر یک درخواست AddTarget با target_id != 0 پس از افزودن یک هدف با target_id=0 به سرور ارسال شود ، سرور بلافاصله با یک رویداد TargetChange::Remove .

توجه داشته باشید که اگر مشتری چندین درخواست AddTarget را بدون شناسه ارسال کند ، ترتیب شناسه های برگشتی در TargetChage.target_ids تعریف نشده است. بنابراین ، مشتریان باید به جای تکیه بر سرور ، یک شناسه هدف را ارائه دهند تا یکی را اختصاص دهند.

اگر target_id غیر صفر باشد ، نباید با همان شناسه یک هدف فعال موجود در این جریان وجود داشته باشد.

once

bool

اگر هدف باید پس از جریان و سازگار حذف شود.

expected_count

Int32Value

تعداد اسنادی که آخرین مورد با پرس و جو در Token رزومه یا زمان خوانده شده است.

این مقدار فقط در صورت ارائه resume_type مرتبط است. این مقدار موجود و بیشتر از سیگنال های صفر است که مشتری می خواهد ExistenceFilter.unchanged_names در پاسخ گنجانده شود.

Union Field target_type . نوع هدف برای گوش دادن. target_type فقط می تواند یکی از موارد زیر باشد:
query

QueryTarget

هدف مشخص شده توسط یک پرس و جو.

documents

DocumentsTarget

هدف مشخص شده توسط مجموعه ای از نام های اسناد.

FIELD FIELD resume_type . چه موقع شروع به گوش دادن کنید.

در صورت مشخص شدن ، فقط اسناد مطابق که پس از resume_token یا read_time به روز شده اند ، بازگردانده می شوند. در غیر این صورت ، تمام اسناد مطابق قبل از هرگونه تغییر بعدی بازگردانده می شوند. resume_type فقط می تواند یکی از موارد زیر باشد:

resume_token

bytes

یک نشان رزومه از یک TargetChange قبلی برای یک هدف یکسان.

استفاده از نشانه رزومه با هدف متفاوت پشتیبانی نشده و ممکن است شکست بخورد.

read_time

Timestamp

شروع به گوش دادن پس از یک زمان خاص read_time کنید.

مشتری باید در حال حاضر وضعیت اسناد مطابق را بشناسد.

مستند سازی

هدف مشخص شده توسط مجموعه ای از نام اسناد.

زمینه های
documents[]

string

نام اسناد برای بازیابی. در قالب: projects/{project_id}/databases/{database_id}/documents/{document_path} . اگر هر یک از سند ها منبع کودک database داده شده نباشند ، درخواست شکست خواهد خورد. نام های تکراری انتخاب می شوند.

دست و پا زدن

هدف مشخص شده توسط یک پرس و جو.

زمینه های
parent

string

نام منابع والدین. در قالب: projects/{project_id}/databases/{database_id}/documents یا projects/{project_id}/databases/{database_id}/documents/{document_path} . به عنوان مثال: projects/my-project/databases/my-database/documents یا projects/my-project/databases/my-database/documents/chatrooms/my-chatroom

Union Field query_type . پرس و جو برای اجرا. query_type فقط می تواند یکی از موارد زیر باشد:
structured_query

StructuredQuery

یک پرس و جو ساختاری

مبادله هدف

اهداف مورد نظر تغییر کرده اند.

زمینه های
target_change_type

TargetChangeType

نوع تغییراتی که رخ داده است.

target_ids[]

int32

شناسه های هدف از اهداف که تغییر کرده اند.

اگر خالی باشد ، این تغییر در مورد همه اهداف اعمال می شود.

ترتیب شناسه های هدف تعریف نشده است.

cause

Status

خطایی که منجر به این تغییر شد ، در صورت وجود.

resume_token

bytes

نشانه ای که می تواند برای از سرگیری جریان برای target_ids داده شده یا همه اهداف در صورت خالی بودن target_ids استفاده شود.

در هر تغییر هدف تنظیم نشده است.

read_time

Timestamp

read_time مداوم برای target_ids داده شده (هنگامی که target_ids در یک عکس فوری سازگار نیستند حذف شده اند).

این جریان تضمین می شود که هر زمان که کل جریان به یک عکس فوری جدید برسد ، یک read_time با target_ids خالی ارسال کنید. پیام های اضافه شده ، فعلی و تنظیم مجدد تضمین می شوند تا (در نهایت) در یک عکس فوری سازگار جدید (در حالی که no_change و حذف پیام ها نیستند) تضمین می شوند.

برای یک جریان معین ، read_time تضمین می شود که به صورت یکنواخت افزایش می یابد.

نوع هدف

نوع تغییر

نماد
NO_CHANGE هیچ تغییری رخ نداده است. فقط برای ارسال resume_token به روز شده استفاده می شود.
ADD اهداف اضافه شده است.
REMOVE اهداف حذف شده اند.
CURRENT

اهداف منعکس کننده تمام تغییرات انجام شده قبل از اضافه شدن اهداف به جریان است.

این ارسال بعد از یا با یک read_time که بیشتر از یا مساوی با زمان اضافه شدن اهداف باشد ، ارسال می شود.

اگر معانی خوانده شده پس از نوشتن مورد نظر باشد ، شنوندگان می توانند منتظر این تغییر باشند.

RESET

اهداف تنظیم مجدد شده اند و حالت اولیه جدید برای اهداف در تغییرات بعدی بازگردانده می شود.

پس از اتمام حالت اولیه ، CURRENT حتی اگر هدف قبلاً CURRENT داشته باشد ، بازگردانده می شود.

معامله

گزینه هایی برای ایجاد یک معامله جدید.

زمینه های
mode میدان اتحادیه. حالت معامله. mode فقط می تواند یکی از موارد زیر باشد:
read_only

ReadOnly

معامله فقط برای عملیات خواندن قابل استفاده است.

read_write

ReadWrite

معامله می تواند برای هر دو عملیات خواندن و نوشتن استفاده شود.

فقط خواندنی

گزینه هایی برای معامله ای که فقط برای خواندن اسناد قابل استفاده است.

زمینه های
Union Field consistency_selector . حالت قوام برای این معامله. اگر تنظیم نشده باشد ، به طور پیش فرض به قوام قوی. consistency_selector فقط می تواند یکی از موارد زیر باشد:
read_time

Timestamp

اسناد را در زمان معین می خواند.

این باید یک زمان سنجی دقیق میکرو ثانیه در طی یک ساعت گذشته باشد ، یا اگر بازیابی نقطه به موقع فعال شود ، علاوه بر این می تواند در 7 روز گذشته یک جدول زمانی کامل باشد.

خواندن بنویس

گزینه هایی برای معامله ای که می تواند برای خواندن و نوشتن اسناد استفاده شود.

Firestore اجازه نمی دهد درخواست های AUTH شخص ثالث برای ایجاد نوشتن خواندن باشد. معاملات

زمینه های
retry_transaction

bytes

یک معامله اختیاری برای امتحان کردن.

به روز شده

درخواست Firestore.UpdateDocument .

زمینه های
document

Document

ضروری. سند به روز شده اگر قبلاً وجود نداشته باشد ، سند را ایجاد می کند.

update_mask

DocumentMask

زمینه های به روزرسانی. هیچ یک از مسیرهای میدانی موجود در ماسک ممکن است حاوی یک نام رزرو شده باشد.

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

mask

DocumentMask

زمینه های بازگشت. اگر تنظیم نشده باشد ، همه زمینه ها را برمی گرداند.

اگر این سند زمینه ای داشته باشد که در این ماسک وجود ندارد ، آن قسمت در پاسخ بازگردانده نمی شود.

current_document

Precondition

پیش شرط اختیاری در سند. در صورت تنظیم این درخواست ، درخواست شکست خواهد خورد و توسط سند هدف برآورده نمی شود.

ارزش

پیامی که می تواند هر یک از انواع ارزش پشتیبانی شده را نگه دارد.

زمینه های
Field Field value_type . باید یک مجموعه مقادیر داشته باشد. value_type فقط می تواند یکی از موارد زیر باشد:
null_value

NullValue

یک مقدار تهی

boolean_value

bool

یک مقدار بولی

integer_value

int64

یک مقدار عدد صحیح

double_value

double

یک مقدار دو برابر

timestamp_value

Timestamp

یک مقدار Timestamp.

دقیق فقط به میکرو ثانیه. هنگام ذخیره ، هرگونه دقت اضافی گرد می شود.

string_value

string

یک مقدار رشته

رشته ، به عنوان UTF -8 ، نباید از 1 MIB - 89 بایت تجاوز کند. فقط 1500 بایت اول نمایندگی UTF-8 توسط نمایش داده شد.

bytes_value

bytes

مقدار بایت

نباید بیش از 1 MIB - 89 بایت باشد. فقط 1500 بایت اول توسط نمایش داده شد.

reference_value

string

اشاره به یک سند. به عنوان مثال: projects/{project_id}/databases/{database_id}/documents/{document_path} .

geo_point_value

LatLng

یک مقدار نقطه جغرافیایی که یک نقطه در سطح زمین را نشان می دهد.

array_value

ArrayValue

یک مقدار آرایه

نمی تواند به طور مستقیم حاوی مقدار آرایه دیگری باشد ، اگرچه می تواند شامل نقشه ای باشد که حاوی آرایه دیگری باشد.

map_value

MapValue

مقدار نقشه

نوشتن

نوشتن روی یک سند.

زمینه های
update_mask

DocumentMask

زمینه های به روزرسانی در این نوشتن.

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

update_transforms[]

FieldTransform

تبدیل ها برای انجام پس از بروزرسانی.

این قسمت فقط در صورت update عملیات قابل تنظیم است. در صورت وجود ، این نوشتن معادل انجام update و transform به همان سند به صورت اتمی و به ترتیب است.

current_document

Precondition

پیش شرط اختیاری در سند.

اگر این تنظیم شود و توسط سند هدف برآورده نشود ، نوشتن شکست خواهد خورد.

operation میدانی اتحادیه. عملیاتی برای اجرای operation فقط می تواند یکی از موارد زیر باشد:
update

Document

سندی برای نوشتن

delete

string

یک نام سند برای حذف. در قالب: projects/{project_id}/databases/{database_id}/documents/{document_path} .

transform

DocumentTransform

تحول را به یک سند اعمال می کند.

نویسنده

درخواست Firestore.Write .

درخواست اول یک جریان ایجاد می کند ، یا یک مورد موجود را از یک نشانه از سر می گیرد.

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

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

زمینه های
database

string

ضروری. نام بانک اطلاعاتی در قالب: projects/{project_id}/databases/{database_id} . این فقط در اولین پیام مورد نیاز است.

stream_id

string

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

writes[]

Write

می نویسد تا اعمال شود.

همیشه از نظر اتمی و به ترتیب اجرا می شود. این باید در اولین درخواست خالی باشد. این ممکن است در آخرین درخواست خالی باشد. این نباید در تمام درخواست های دیگر خالی باشد.

stream_token

bytes

نشانه ای که قبلاً توسط سرور ارسال شده بود.

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

در صورت وجود پاسخ های ناشناخته بیش از حد ، سرور ممکن است جریان را ببندد.

هنگام ایجاد یک جریان جدید ، این زمینه را باز کنید. برای از سرگیری یک جریان در یک نقطه خاص ، این قسمت و قسمت stream_id را تنظیم کنید.

هنگام ایجاد یک جریان جدید ، این زمینه را باز کنید.

labels

map<string, string>

برچسب های مرتبط با این درخواست نوشتن.

نویسنده پاسخ

پاسخ Firestore.Write .

زمینه های
stream_id

string

شناسه جریان. هنگامی که یک جریان جدید ایجاد شد ، فقط پیام اول را تنظیم کنید.

stream_token

bytes

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

این قسمت همیشه تنظیم شده است.

write_results[]

WriteResult

نتیجه استفاده از نویسندگان.

این نتیجه نوشتن I-Th مربوط به نوشتن I-Th در درخواست است.

commit_time

Timestamp

زمان وقوع تعهد. هر خواندن با یک read_time برابر یا بیشتر برای دیدن اثرات نوشتن تضمین شده است.

نویسنده

نتیجه استفاده از نوشتن.

زمینه های
update_time

Timestamp

آخرین زمان به روزرسانی سند پس از استفاده از نوشتن. بعد از delete تنظیم نشده است.

اگر نوشتن در واقع سند را تغییر نداد ، این به روزرسانی قبلی خواهد بود.

transform_results[]

Value

نتایج استفاده از هر DocumentTransform.FieldTransform ، به همان ترتیب.