Package google.firestore.v1

فهرست مطالب

آتش نشانی

سرویس 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، آمار اشکال زدایی در معرض تغییر است. ممکن است شامل موارد زیر باشد: { "index_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 .

زمینه های
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 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

explain_options

ExplainOptions

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

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

StructuredAggregationQuery

یک پرس و جو تجمع

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

bytes

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

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

new_transaction

TransactionOptions

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

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

read_time

Timestamp

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

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

RunAggregationQueryResponse

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

زمینه های
result

AggregationResult

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

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

transaction

bytes

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

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

read_time

Timestamp

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

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

explain_metrics

ExplainMetrics

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

RunQueryRequest

درخواست Firestore.RunQuery .

زمینه های
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

explain_options

ExplainOptions

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

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

StructuredQuery

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

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

bytes

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

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

new_transaction

TransactionOptions

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

read_time

Timestamp

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

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

RunQueryResponse

پاسخ برای 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 ارائه شده باشد و تنها یک بار با آخرین پاسخ در جریان ارسال می شود.

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

bool

در صورت وجود، Firestor به طور کامل درخواست را تکمیل کرده است و هیچ مدرک دیگری عودت داده نخواهد شد.

StructuredAggregationQuery

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

زمینه های
aggregations[]

Aggregation

اختیاری. مجموعه‌ای از تجمیع‌ها برای اعمال بر روی نتایج structured_query .

نیاز دارد:

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

StructuredQuery

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

تجمع

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

زمینه های
alias

string

اختیاری. نام اختیاری فیلد برای ذخیره نتیجه تجمیع در.

اگر ارائه نشده باشد، Firestore یک نام پیش‌فرض را به دنبال 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

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

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

Unspecified به عنوان بدون محدودیت تفسیر می شود.

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

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

نیاز دارد:

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

مجموع

مجموع مقادیر فیلد درخواستی

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

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

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

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

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

زمینه های
field

FieldReference

میدانی برای تجمیع

StructuredQuery

یک پرسش Firestore

مراحل پرس و جو به ترتیب زیر اجرا می شوند: 1. از 2. جایی که 3. انتخاب کنید 4. order_by + start_at + end_at 5. offset 6. limit

زمینه های
select

Projection

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

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

from[]

CollectionSelector

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

where

Filter

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

order_by[]

Order

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

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

  • 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

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

نیاز دارد:

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

اپراتور

اپراتور فیلتر ترکیبی

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

جهت

یک جهت.

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

فیلد فیلتر

یک فیلتر در یک زمینه خاص.

زمینه های
field

FieldReference

فیلدی برای فیلتر کردن.

op

Operator

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

value

Value

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

اپراتور

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

Enums
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 غیر خالی است که مشمول محدودیت‌های تفکیک است.
  • هیچ فیلتر NOT_IN در همان جستار وجود ندارد.
ARRAY_CONTAINS_ANY

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

نیاز دارد:

  • این value یک ArrayValue غیر خالی است که مشمول محدودیت‌های تفکیک است.
  • هیچ فیلتر دیگری ARRAY_CONTAINS_ANY در همان تفکیک وجود ندارد.
  • هیچ فیلتر 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

ارجاع به یک فیلد در یک سند.

نیاز دارد:

  • باید رشته‌ای از بخش‌ها با نقطه مشخص ( . ) باشد که در آن هر بخش با محدودیت‌های document field name مطابقت دارد.

فیلتر کنید

یک فیلتر

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

CompositeFilter

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

field_filter

FieldFilter

فیلتر در فیلد سند

unary_filter

UnaryFilter

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

یافتن نزدیکترین

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

زمینه های
vector_field

FieldReference

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

query_vector

Value

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

distance_measure

DistanceMeasure

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

limit

Int32Value

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

اندازه گیری فاصله

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

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

سفارش

یک سفارش در یک میدان

زمینه های
field

FieldReference

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

direction

Direction

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

فرافکنی

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

زمینه های
fields[]

FieldReference

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

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

UnaryFilter

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

زمینه های
op

Operator

اپراتور unary برای درخواست.

operand_type فیلد اتحادیه. استدلال به فیلتر. operand_type می تواند تنها یکی از موارد زیر باشد:
field

FieldReference

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

اپراتور

یک اپراتور یکنواخت

Enums
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

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

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

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

QueryTarget

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

documents

DocumentsTarget

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

فیلد اتحادیه resume_type . چه زمانی شروع به گوش دادن کنیم.

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

resume_token

bytes

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

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

read_time

Timestamp

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

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

DocumentsTarget

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

زمینه های
documents[]

string

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

QueryTarget

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

زمینه های
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

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

StructuredQuery

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

تغییر هدف

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

زمینه های
target_change_type

TargetChangeType

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

target_ids[]

int32

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

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

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

cause

Status

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

resume_token

bytes

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

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

read_time

Timestamp

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

هر زمان که کل جریان به یک عکس فوری ثابت جدید رسید، جریان تضمین می‌شود که یک read_time با target_ids خالی ارسال کند. پیام‌های ADD، CURRENT و RESET تضمین می‌شوند که (در نهایت) منجر به یک عکس فوری جدید می‌شوند (در حالی که پیام‌های NO_CHANGE و REMOVE چنین نیستند).

برای یک جریان معین، read_time به طور یکنواخت تضمین شده است.

TargetChangeType

نوع تغییر.

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

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

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

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

RESET

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

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

گزینه های تراکنش

گزینه هایی برای ایجاد یک تراکنش جدید

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

ReadOnly

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

read_write

ReadWrite

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

فقط خواندنی

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

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

Timestamp

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

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

خواندن بنویس

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

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

زمینه های
retry_transaction

bytes

یک تراکنش اختیاری برای امتحان مجدد.

UpdateDocumentRequest

درخواست Firestore.UpdateDocument .

زمینه های
document

Document

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

update_mask

DocumentMask

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

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

mask

DocumentMask

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

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

current_document

Precondition

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

ارزش

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

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

NullValue

یک مقدار صفر

boolean_value

bool

یک مقدار بولی

integer_value

int64

یک مقدار صحیح

double_value

double

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

timestamp_value

Timestamp

یک مقدار مهر زمانی

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

string_value

string

یک مقدار رشته

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

bytes_value

bytes

مقدار یک بایت

نباید بیش از 1 مگابایت - 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

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

WriteRequest

درخواست 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>

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

WriteResponse

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

زمینه های
stream_id

string

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

stream_token

bytes

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

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

write_results[]

WriteResult

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

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

commit_time

Timestamp

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

Write Result

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

زمینه های
update_time

Timestamp

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

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

transform_results[]

Value

نتایج اعمال هر DocumentTransform.FieldTransform به همان ترتیب.