Package google.firestore.v1

ดัชนี

Firestore

บริการ Cloud Firestore

Cloud Firestore เป็นฐานข้อมูลเอกสาร NoSQL ที่ดำเนินการบนระบบคลาวด์แบบ Serverless ที่รวดเร็ว มีการจัดการครบวงจร ซึ่งช่วยให้การจัดเก็บ การซิงค์ และการค้นหาข้อมูลสำหรับแอปบนอุปกรณ์เคลื่อนที่ เว็บและแอป IoT ในระดับโลกเป็นเรื่องง่ายขึ้น ไลบรารีของไคลเอ็นต์มีการซิงค์แบบเรียลไทม์และการสนับสนุนออฟไลน์ ส่วนฟีเจอร์ความปลอดภัยและการผสานรวมกับ Firebase และ Google Cloud Platform จะช่วยเร่งการสร้างแอปแบบ Serverless ได้จริง

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 ไม่ได้ใช้การดำเนินการเขียนแบบอะตอมและไม่สามารถนำไปใช้อย่างไม่เรียงตามลำดับได้ เมธอดไม่อนุญาตให้มีการเขียนมากกว่า 1 รายการต่อเอกสาร การเขียนแต่ละรายการสำเร็จหรือล้มเหลวโดยแยกกัน ดูสถานะความสำเร็จของการเขียนแต่ละรายการได้ที่ BatchWriteResponse

หากต้องการใช้ชุดการเขียนแบบอะตอม ให้ใช้ Commit แทน

ขอบเขตการให้สิทธิ์

ต้องใช้ขอบเขต OAuth อย่างใดอย่างหนึ่งต่อไปนี้

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

ดูข้อมูลเพิ่มเติมได้ที่ภาพรวมการตรวจสอบสิทธิ์

BeginTransaction

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

ดูข้อมูลเพิ่มเติมได้ที่ภาพรวมการตรวจสอบสิทธิ์

CreateDocument

rpc CreateDocument(CreateDocumentRequest) returns (Document)

สร้างเอกสารใหม่

ขอบเขตการให้สิทธิ์

ต้องใช้ขอบเขต OAuth อย่างใดอย่างหนึ่งต่อไปนี้

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

ดูข้อมูลเพิ่มเติมได้ที่ภาพรวมการตรวจสอบสิทธิ์

DeleteDocument

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

ดูข้อมูลเพิ่มเติมได้ที่ภาพรวมการตรวจสอบสิทธิ์

ListDocuments

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

ดูข้อมูลเพิ่มเติมได้ที่ภาพรวมการตรวจสอบสิทธิ์

UpdateDocument

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

ดูข้อมูลเพิ่มเติมได้ที่ภาพรวมการตรวจสอบสิทธิ์

AggregationResult

ผลลัพธ์ของที่เก็บข้อมูลเดียวจากการค้นหาการรวม 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

อ่านเอกสารแบบเดียวกับ ณ เวลาที่ระบุ

โดยต้องเป็นการประทับเวลาที่แม่นยำในระดับไมโครวินาทีภายใน 1 ชั่วโมงที่ผ่านมา หรือหากเปิดใช้การกู้คืนช่วงเวลาอยู่ ก็อาจเป็นการประทับเวลาแบบเต็มนาทีภายในช่วง 7 วันที่ผ่านมาด้วย

BatchGetDocumentsResponse

การตอบกลับที่สตรีมสำหรับ Firestore.BatchGetDocuments

ช่อง
transaction

bytes

ธุรกรรมที่เริ่มต้นโดยเป็นส่วนหนึ่งของคำขอนี้ จะมีการตั้งค่าในการตอบกลับครั้งแรกเท่านั้น และจะตั้งค่า BatchGetDocumentsRequest.new_transaction ในคำขอเท่านั้น

read_time

Timestamp

เวลาที่อ่านเอกสาร กรณีนี้อาจเพิ่มขึ้นแบบโมฆะ ในกรณีนี้ เรารับประกันว่าเอกสารก่อนหน้าในสตรีมผลลัพธ์จะไม่มีการเปลี่ยนแปลงระหว่าง Read_time กับเอกสารนี้

ฟิลด์สหภาพ 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

การเขียนที่จะใช้

วิธีการนี้ไม่ได้ใช้การเขียนแบบอะตอมและไม่รับประกันลำดับ การเขียนแต่ละรายการสำเร็จหรือล้มเหลวโดยแยกกัน คุณไม่สามารถเขียนลงในเอกสารเดียวกันเกิน 1 ครั้งต่อคำขอ

labels

map<string, string>

ป้ายกำกับที่เกี่ยวข้องกับการเขียนกลุ่มนี้

BatchWriteResponse

คำตอบจาก Firestore.BatchWrite

ช่อง
write_results[]

WriteResult

ผลของการใช้การเขียน

ผลการเขียน i นี้สอดคล้องกับการเขียน i-th ในคำขอ

status[]

Status

สถานะของการใช้การเขียน

สถานะการเขียน i นี้สอดคล้องกับการเขียน i-th ในคำขอ

BeginTransactionRequest

คำขอสำหรับ Firestore.BeginTransaction

ช่อง
database

string

ต้องระบุ ชื่อฐานข้อมูล ในรูปแบบ: projects/{project_id}/databases/{database_id}

options

TransactionOptions

ตัวเลือกสำหรับธุรกรรม ค่าเริ่มต้นจะเป็นธุรกรรมแบบอ่าน-เขียน

BeginTransactionResponse

การตอบกลับสำหรับ Firestore.BeginTransaction

ช่อง
transaction

bytes

ธุรกรรมที่เริ่มต้น

BitSequence

ลำดับของบิตที่เข้ารหัสในอาร์เรย์ไบต์

แต่ละไบต์ในอาร์เรย์ bitmap ไบต์จะจัดเก็บลำดับ 8 บิต ข้อยกเว้นเพียงอย่างเดียวคือไบต์สุดท้ายที่อาจจัดเก็บได้ 8 บิตหรือน้อยกว่า padding กำหนดจำนวนบิตของไบต์สุดท้ายที่จะไม่สนใจเป็น "ระยะห่างจากขอบ" โดยจะไม่ได้ระบุค่าของบิต "ระยะห่างจากขอบ" เหล่านี้และระบบจะละเว้นค่าดังกล่าว

หากต้องการดึงบิตแรก ให้คำนวณบิตที่ 0 เป็น (bitmap[0] & 0x01) != 0 หากต้องการดึงบิตที่ 2 ให้คำนวณบิตที่ 1 เป็น (bitmap[0] & 0x02) != 0 หากต้องการดึงบิตที่ 3 บิตที่ 2 ให้คำนวณดังนี้ (bitmap[0] & 0x04) != 0 หากต้องการดึงบิตที่ 4 บิตที่ 3 ให้คำนวณดังนี้ (bitmap[0] & 0x08) != 0 หากต้องการดึงบิต n ให้คำนวณดังนี้ (bitmap[n / 8] & (0x01 << (n % 8))) != 0

"size" ของ BitSequence (จำนวนบิตที่มี) คำนวณโดยใช้สูตรนี้ (bitmap.length * 8) - padding

ช่อง
bitmap

bytes

ไบต์ที่เข้ารหัสลำดับบิต อาจมีความยาวเป็น 0

padding

int32

จำนวนบิตของไบต์สุดท้ายใน bitmap ที่จะละเว้นในฐานะ "ระยะห่างจากขอบ" หากความยาวของ bitmap เป็น 0 ค่านี้จะต้องเป็น 0 ไม่เช่นนั้น ค่านี้ต้องอยู่ระหว่าง 0 ถึง 7

BloomFilter

ฟิลเตอร์บลูม (https://en.wikipedia.org/wiki/Bloom_filter)

ตัวกรอง Bloom จะแฮชรายการที่มี MD5 และถือว่าแฮช 128 บิตที่ได้เป็นค่าแฮช 64 บิตที่แตกต่างกัน 2 ค่า โดยตีความเป็นจำนวนเต็มที่ไม่มีเครื่องหมายโดยใช้การเข้ารหัสเสริมของ 2

จากนั้นค่าแฮช 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-th ในคำขอ

commit_time

Timestamp

เวลาที่คอมมิตเกิดขึ้น การอ่านใดๆ ที่มี read_time เท่ากับหรือมากกว่าก็รับประกันได้ว่าจะเห็นผลของการคอมมิต

CreateDocumentRequest

คำขอสำหรับ Firestore.CreateDocument

ช่อง
parent

string

ต้องระบุ ทรัพยากรระดับบนสุด เช่น projects/{project_id}/databases/{database_id}/documents หรือ 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 MiB - 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 ของการค้นหาได้

DocumentChange

Document มีการเปลี่ยนแปลง

อาจเป็นผลมาจาก writes หลายรายการรวมถึงการลบ ซึ่งท้ายที่สุดแล้วจะทำให้มีค่าใหม่สำหรับ Document

ระบบอาจแสดงข้อความ DocumentChange หลายรายการสำหรับการเปลี่ยนแปลงเชิงตรรกะเดียวกัน หากเป้าหมายหลายรายการได้รับผลกระทบ

ช่อง
document

Document

สถานะใหม่ของ Document

หากตั้งค่า mask ไว้ จะมีเฉพาะช่องที่ได้รับการอัปเดตหรือเพิ่มเท่านั้น

target_ids[]

int32

ชุดของรหัสเป้าหมายที่ตรงกับเอกสารนี้

removed_target_ids[]

int32

ชุดของรหัสเป้าหมายสำหรับเป้าหมายที่ไม่ตรงกับเอกสารนี้อีกต่อไป

DocumentDelete

ลบ 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

เพิ่มค่าที่ระบุลงในค่าปัจจุบันของช่อง

ค่านี้ต้องเป็นจำนวนเต็มหรือค่าทศนิยม หากช่องนี้ไม่ใช่จำนวนเต็มหรือคู่ หรือยังไม่มีช่องนี้ การเปลี่ยนรูปแบบจะตั้งค่าฟิลด์เป็นค่าที่ระบุ หากค่าใดค่าหนึ่งที่ระบุหรือค่าในช่องปัจจุบันเป็นเลขทศนิยม 2 ค่า ระบบจะแปลค่าทั้งสองเป็นเลขทศนิยม เลขคณิตคู่และการนำเสนอค่าทศนิยมเป็นไปตามความหมายของ IEEE 754 หากมีจำนวนเต็มบวก/ลบเพิ่มเติม ฟิลด์นี้จะถูกแก้ไขให้เป็นจำนวนเต็มบวก/ลบที่มีค่าที่สุด

maximum

Value

ตั้งค่าช่องนี้ให้เป็นค่าสูงสุดของค่าปัจจุบันและค่าที่กำหนด

ค่านี้ต้องเป็นจำนวนเต็มหรือค่าทศนิยม หากช่องนี้ไม่ใช่จำนวนเต็มหรือคู่ หรือยังไม่มีช่องนี้ การเปลี่ยนรูปแบบจะตั้งค่าฟิลด์เป็นค่าที่ระบุ หากใช้การดำเนินการสูงสุดโดยที่ฟิลด์และค่าอินพุตเป็นประเภทผสม (นั่นคือ 1 เป็นจำนวนเต็มและหนึ่งเป็นเลขคู่) ฟิลด์จะใช้ประเภทของตัวถูกดำเนินการที่มีขนาดใหญ่ หากตัวถูกดำเนินการเท่ากัน (เช่น 3 และ 3.0) ฟิลด์นี้จะไม่เปลี่ยนแปลง 0, 0.0 และ -0.0 เป็น 0 ทั้งหมด ค่าสูงสุดของค่าที่จัดเก็บไว้เป็น 0 และค่าที่ป้อนเป็นศูนย์จะเป็นค่าที่เก็บไว้เสมอ ค่าสูงสุดของค่าตัวเลข x และ NaN คือ NaN

minimum

Value

ตั้งค่าช่องนี้เป็นค่าต่ำสุดของค่าปัจจุบันและค่าที่กำหนด

ค่านี้ต้องเป็นจำนวนเต็มหรือค่าทศนิยม หากช่องนี้ไม่ใช่จำนวนเต็มหรือคู่ หรือยังไม่มีช่องนี้ การเปลี่ยนรูปแบบจะตั้งค่าช่องนี้เป็นค่าอินพุต หากใช้การดำเนินการขั้นต่ำเมื่อฟิลด์และค่าอินพุตเป็นประเภทผสม (นั่นคือ 1 เป็นจำนวนเต็มและหนึ่งเป็นเลขคู่) ฟิลด์จะใช้ประเภทของตัวถูกดำเนินการขนาดเล็ก หากตัวถูกดำเนินการเท่ากัน (เช่น 3 และ 3.0) ฟิลด์นี้จะไม่เปลี่ยนแปลง 0, 0.0 และ -0.0 เป็น 0 ทั้งหมด ค่าต่ำสุดของค่าที่จัดเก็บไว้เป็น 0 และค่าที่ป้อนเป็น 0 จะเป็นค่าที่เก็บไว้เสมอ ค่าตัวเลขต่ำสุดของ x และ NaN คือ NaN

append_missing_elements

ArrayValue

เพิ่มองค์ประกอบที่ระบุตามลําดับหากยังไม่มีอยู่ในค่าของช่องปัจจุบัน หากช่องนี้ไม่ใช่อาร์เรย์ หรือยังไม่มีช่องนี้ ระบบจะตั้งค่าให้เป็นอาร์เรย์ว่างก่อน

จำนวนที่เท่ากันของประเภทต่างๆ (เช่น 3L และ 3.0) จะถือว่าเท่ากันเมื่อตรวจสอบว่ามีค่าขาดหายไปหรือไม่ NaN เท่ากับ NaN และ Null เท่ากับ Null หากข้อมูลที่ป้อนมีค่าที่เทียบเท่าหลายค่า ระบบจะพิจารณาเฉพาะค่าแรก

Transform_result ที่เกี่ยวข้องจะเป็นค่า Null

remove_all_from_array

ArrayValue

นำองค์ประกอบที่ระบุทั้งหมดออกจากอาร์เรย์ในช่อง หากช่องนี้ไม่ใช่อาร์เรย์ หรือยังไม่มีช่องนี้ ระบบจะตั้งค่าเป็นอาร์เรย์ที่ว่างเปล่า

จำนวนที่เท่ากันของประเภทต่างๆ (เช่น 3L และ 3.0) จะถือว่าเท่ากันเมื่อตัดสินใจว่าควรนำองค์ประกอบออกหรือไม่ NaN เท่ากับ NaN และ Null เท่ากับ Null การดำเนินการนี้จะนำค่าที่เทียบเท่าทั้งหมดออกหากมีรายการที่ซ้ำกัน

Transform_result ที่เกี่ยวข้องจะเป็นค่า Null

ServerValue

ค่าที่เซิร์ฟเวอร์จะคำนวณ

Enum
SERVER_VALUE_UNSPECIFIED ไม่ระบุ ต้องไม่ใช้ค่านี้
REQUEST_TIME เวลาที่เซิร์ฟเวอร์ประมวลผลคำขอด้วยความแม่นยำในระดับมิลลิวินาที หากใช้ในหลายช่อง (เอกสารเดียวกันหรือต่างกัน) ในธุรกรรม ช่องทั้งหมดจะได้รับการประทับเวลาของเซิร์ฟเวอร์เหมือนกัน

ExecutionStats

สถิติการดำเนินการสำหรับข้อความค้นหา

ช่อง
results_returned

int64

จำนวนผลลัพธ์ทั้งหมดที่ส่งคืน รวมถึงเอกสาร การฉายภาพ ผลการรวม คีย์

execution_duration

Duration

เวลาทั้งหมดที่ใช้ในการค้นหาในแบ็กเอนด์

read_operations

int64

การดำเนินการอ่านทั้งหมดที่เรียกเก็บเงินได้

debug_stats

Struct

การแก้ไขข้อบกพร่องทางสถิติจากการดำเนินการค้นหา โปรดทราบว่าสถิติการแก้ไขข้อบกพร่องอาจมีการเปลี่ยนแปลงเมื่อ Firestore พัฒนาขึ้น It could include: { "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

หากแตกต่างจากจำนวนเอกสารในไคลเอ็นต์ที่ตรงกัน ลูกค้าจะต้องพิจารณาด้วยตนเองว่าเอกสารใดไม่ตรงกับเป้าหมายอีกต่อไป

ลูกค้าสามารถใช้ตัวกรอง Bloom ของ unchanged_names เพื่อช่วยในการตัดสินใจด้วยการทดสอบชื่อเอกสารทั้งหมดกับตัวกรอง หากชื่อเอกสารไม่อยู่ในตัวกรอง แสดงว่าเอกสารไม่ตรงกับเป้าหมายอีกต่อไป

unchanged_names

BloomFilter

ตัวกรอง Bloom ที่แม้ว่าจะมีชื่อ แต่จะมีการเข้ารหัสแบบ UTF-8 ของชื่อทรัพยากรของเอกสารทั้งหมดที่ตรงกับ target_id ในรูปแบบ projects/{project_id}/databases/{database_id}/documents/{document_path}

ตัวกรองเบ่งบานนี้อาจถูกละเว้นตามที่เซิร์ฟเวอร์เห็นสมควร เช่น ในกรณีที่เห็นว่าลูกค้าจะไม่ใช้ฟิลเตอร์นี้ หรือถ้าการประมวลผลมีราคาแพงเกินไปสำหรับการคำนวณหรือส่ง ไคลเอ็นต์จะต้องจัดการกับฟิลด์ที่ขาดไปนี้อย่างมีชั้นเชิง โดยการย้อนกลับไปใช้ตรรกะที่ใช้ก่อนที่จะมีช่องนี้ กล่าวคือ เพิ่มเป้าหมายอีกครั้งโดยไม่มีโทเค็นสำหรับกลับมาทำงานอีกครั้ง เพื่อดูว่าเอกสารใดในแคชของไคลเอ็นต์มีการซิงค์กันหรือไม่

ExplainMetrics

อธิบายเมตริกสำหรับการค้นหา

ช่อง
plan_summary

PlanSummary

ข้อมูลระยะการวางแผนสำหรับการค้นหา

execution_stats

ExecutionStats

สถิติรวมจากการดำเนินการค้นหา แสดงเมื่อตั้งค่า ExplainOptions.analyze เป็น "จริง" เท่านั้น

ExplainOptions

อธิบายตัวเลือกสำหรับการสืบค้นข้อมูล

ช่อง
analyze

bool

ไม่บังคับ จะดําเนินการค้นหานี้หรือไม่

เมื่อเป็นเท็จ (ค่าเริ่มต้น) ระบบจะวางแผนการค้นหาโดยแสดงเฉพาะเมตริกจากขั้นตอนการวางแผนเท่านั้น

เมื่อเป็นจริง ระบบจะวางแผนและดำเนินการค้นหาโดยแสดงผลการค้นหาทั้งหมดพร้อมกับเมตริกขั้นตอนการวางแผนและการดำเนินการ

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

อ่านเวอร์ชันของเอกสารในเวลาที่กำหนด

โดยต้องเป็นการประทับเวลาที่แม่นยำในระดับไมโครวินาทีภายใน 1 ชั่วโมงที่ผ่านมา หรือหากเปิดใช้การกู้คืนช่วงเวลาอยู่ ก็อาจเป็นการประทับเวลาแบบเต็มนาทีภายในช่วง 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

อ่านเอกสารแบบเดียวกับ ณ เวลาที่ระบุ

โดยต้องเป็นการประทับเวลาที่แม่นยำในระดับไมโครวินาทีภายใน 1 ชั่วโมงที่ผ่านมา หรือหากเปิดใช้การกู้คืนช่วงเวลาอยู่ ก็อาจเป็นการประทับเวลาแบบเต็มนาทีภายในช่วง 7 วันที่ผ่านมาด้วย

ListCollectionIdsResponse

คำตอบจาก Firestore.ListCollectionIds

ช่อง
collection_ids[]

string

รหัสคอลเล็กชัน

next_page_token

string

โทเค็นของหน้าที่อาจใช้เพื่อเป็นรายการต่อ

ListDocumentsRequest

คำขอสำหรับ Firestore.ListDocuments

ช่อง
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

collection_id

string

ไม่บังคับ รหัสคอลเล็กชันที่สัมพันธ์กับ parent กับรายการ

เช่น chatrooms หรือ messages

ซึ่งจะไม่บังคับ และหากไม่มี Firestore จะแสดงเอกสารจากคอลเล็กชันทั้งหมดในส่วน parent ที่ให้ไว้

page_size

int32

ไม่บังคับ จำนวนสูงสุดของเอกสารที่จะแสดงผลในการตอบ 1 ครั้ง

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 อีก

คำขอที่มี show_missing ต้องไม่ระบุ where หรือ order_by

ฟิลด์สหภาพ consistency_selector โหมดความสอดคล้องสำหรับธุรกรรมนี้ หากไม่ได้ตั้งค่า ระบบจะใช้ความสอดคล้องขั้นสูงโดยค่าเริ่มต้น consistency_selector ต้องเป็นค่าใดค่าหนึ่งต่อไปนี้เท่านั้น
transaction

bytes

ดำเนินการอ่านที่เป็นส่วนหนึ่งของธุรกรรมที่ใช้งานอยู่แล้ว

read_time

Timestamp

อ่านเวลาที่ระบุ

โดยต้องเป็นการประทับเวลาที่แม่นยำในระดับไมโครวินาทีภายใน 1 ชั่วโมงที่ผ่านมา หรือหากเปิดใช้การกู้คืนช่วงเวลาอยู่ ก็อาจเป็นการประทับเวลาแบบเต็มนาทีภายในช่วง 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 ต้องมีขนาดไม่เกิน 1,500 ไบต์และต้องไม่ว่างเปล่า

PartitionQueryRequest

คำขอสำหรับ Firestore.PartitionQuery

ช่อง
parent

string

ต้องระบุ ชื่อทรัพยากรระดับบนสุด ในรูปแบบ: projects/{project_id}/databases/{database_id}/documents ระบบไม่รองรับชื่อทรัพยากรเอกสาร คุณจะระบุได้เฉพาะชื่อทรัพยากรฐานข้อมูลเท่านั้น

partition_count

int64

จำนวนจุดพาร์ติชันสูงสุดที่ต้องการ พาร์ติชันอาจแสดงในหน้าผลลัพธ์หลายหน้า ตัวเลขต้องเป็นค่าบวก จำนวนพาร์ติชันจริงที่แสดงผลอาจน้อยกว่านี้

เช่น อาจกำหนดให้น้อยกว่าจำนวนคำค้นหาพร้อมกันที่จะเรียกใช้ หรือในการเรียกใช้ไปป์ไลน์ข้อมูล 1 จำนวน โดยน้อยกว่าจำนวนผู้ปฏิบัติงานหรืออินสแตนซ์การประมวลผลที่ใช้ได้

page_token

string

ค่า next_page_token ที่แสดงผลจากการเรียก PartitionQuery ก่อนหน้า ซึ่งอาจใช้เพื่อรับชุดผลลัพธ์เพิ่มเติม ไม่มีการรับประกันการสั่งซื้อระหว่างชุดผลลัพธ์ ดังนั้น การใช้ผลลัพธ์หลายชุดจะต้องมีการรวมชุดผลลัพธ์ที่แตกต่างกัน

ตัวอย่างเช่น การเรียก 2 ครั้งต่อมาโดยใช้ 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 หากมีผลลัพธ์เพิ่มเติม การเรียกพาร์ติชันที่ 2 จะแสดงผลพาร์ติชันสูงสุด 2 พาร์ติชัน เพื่อให้ครบ 10 พาร์ติชันที่ระบุใน partition_count

ฟิลด์สหภาพ query_type การค้นหาที่จะแบ่งพาร์ติชัน query_type ต้องเป็นค่าใดค่าหนึ่งต่อไปนี้เท่านั้น
structured_query

StructuredQuery

การค้นหาแบบมีโครงสร้าง ข้อความค้นหาต้องระบุคอลเล็กชันที่มีองค์ประกอบสืบทอดทั้งหมด และเรียงลำดับตามชื่อจากน้อยไปมาก ระบบไม่รองรับตัวกรองอื่นๆ ลำดับตาม ขีดจำกัด ออฟเซ็ต และเคอร์เซอร์เริ่มต้น/สิ้นสุด

ฟิลด์สหภาพ consistency_selector โหมดความสอดคล้องสำหรับคำขอนี้ หากไม่ได้ตั้งค่า ระบบจะใช้ความสอดคล้องขั้นสูงโดยค่าเริ่มต้น consistency_selector ต้องเป็นค่าใดค่าหนึ่งต่อไปนี้เท่านั้น
read_time

Timestamp

อ่านเอกสารแบบเดียวกับ ณ เวลาที่ระบุ

โดยต้องเป็นการประทับเวลาที่แม่นยำในระดับไมโครวินาทีภายใน 1 ชั่วโมงที่ผ่านมา หรือหากเปิดใช้การกู้คืนช่วงเวลาอยู่ ก็อาจเป็นการประทับเวลาแบบเต็มนาทีภายในช่วง 7 วันที่ผ่านมาด้วย

PartitionQueryResponse

การตอบกลับสำหรับ Firestore.PartitionQuery

ช่อง
partitions[]

Cursor

ผลลัพธ์การแบ่งพาร์ติชัน แต่ละพาร์ติชันคือจุดแยกที่ RunQuery จะใช้เป็นจุดเริ่มต้นหรือจุดสิ้นสุดสำหรับผลการค้นหาได้ คำขอ RunQuery ต้องดำเนินการด้วยการค้นหาเดียวกันกับที่ส่งไปยังคำขอ PartitionQuery นี้ เคอร์เซอร์พาร์ติชันจะมีการจัดเรียงตามลำดับเดียวกันกับผลลัพธ์ของการค้นหาที่ส่งไปยัง PartitionQuery

ตัวอย่างเช่น หากคำขอ PartitionQuery แสดงผลเคอร์เซอร์พาร์ติชัน A และ B การเรียกใช้การค้นหา 3 รายการต่อไปนี้จะแสดงชุดผลลัพธ์ทั้งหมดของคำค้นหาเดิม

  • ข้อความค้นหา สิ้นสุดที่ A
  • ข้อความค้นหา, เริ่มที่ A, สิ้นสุดที่ B
  • คำค้นหา, เริ่มที่ B

ผลลัพธ์ที่ว่างเปล่าอาจบ่งชี้ว่าการค้นหามีผลลัพธ์น้อยเกินไปสำหรับการแบ่งพาร์ติชัน หรือระบบยังไม่รองรับการค้นหาดังกล่าวสำหรับการแบ่งพาร์ติชัน

next_page_token

string

โทเค็นของหน้าเว็บที่อาจใช้เพื่อขอชุดผลลัพธ์เพิ่มเติมตามจำนวนที่ระบุโดย partition_count ในคำขอ PartitionQuery หากเว้นว่างไว้ คุณจะไม่เห็นผลลัพธ์เพิ่มเติม

PlanSummary

ข้อมูลระยะการวางแผนสำหรับการค้นหา

ช่อง
indexes_used[]

Struct

ดัชนีที่เลือกสำหรับคำค้นหา For example: [ {"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

เมื่อตั้งค่าแล้ว เอกสารเป้าหมายจะต้องมีอยู่และได้รับการอัปเดตล่าสุดในเวลานั้น การประทับเวลาต้องสอดคล้องกันแบบไมโครวินาที

RollbackRequest

คำขอสำหรับ 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

ไม่บังคับ อธิบายตัวเลือกสำหรับการสืบค้นข้อมูล หากตั้งค่าไว้ ระบบจะแสดงผลสถิติการค้นหาเพิ่มเติม ไม่เช่นนั้น ระบบจะแสดงเฉพาะผลการค้นหา

ฟิลด์สหภาพ query_type การค้นหาที่เรียกใช้ query_type ต้องเป็นค่าใดค่าหนึ่งต่อไปนี้เท่านั้น
structured_aggregation_query

StructuredAggregationQuery

การค้นหาแบบรวม

ฟิลด์สหภาพ consistency_selector โหมดความสอดคล้องสำหรับการค้นหาจะมีค่าเริ่มต้นเป็นความสอดคล้องขั้นสูง consistency_selector ต้องเป็นค่าใดค่าหนึ่งต่อไปนี้เท่านั้น
transaction

bytes

เรียกใช้การรวมภายในธุรกรรมที่ใช้งานอยู่แล้ว

ค่าในส่วนนี้คือรหัสธุรกรรมที่ไม่ชัดเจนสำหรับดำเนินการค้นหา

new_transaction

TransactionOptions

เริ่มธุรกรรมใหม่ในการค้นหา โดยมีค่าเริ่มต้นเป็นแบบอ่านอย่างเดียว

ระบบจะแสดงรหัสธุรกรรมใหม่เป็นคำตอบแรกในสตรีม

read_time

Timestamp

ดำเนินการค้นหาตามการประทับเวลาที่ระบุ

โดยต้องเป็นการประทับเวลาที่แม่นยำในระดับไมโครวินาทีภายใน 1 ชั่วโมงที่ผ่านมา หรือหากเปิดใช้การกู้คืนช่วงเวลาอยู่ ก็อาจเป็นการประทับเวลาแบบเต็มนาทีภายในช่วง 7 วันที่ผ่านมาด้วย

RunAggregationQueryResponse

การตอบกลับสำหรับ Firestore.RunAggregationQuery

ช่อง
result

AggregationResult

ผลลัพธ์การรวมรายการเดียว

ไม่แสดงเมื่อรายงานความคืบหน้าบางส่วน

transaction

bytes

ธุรกรรมที่เริ่มต้นโดยเป็นส่วนหนึ่งของคำขอนี้

มีอยู่ในการตอบกลับครั้งแรกเมื่อคำขอขอให้เริ่มธุรกรรมใหม่เท่านั้น

read_time

Timestamp

เวลาที่มีการคํานวณผลลัพธ์รวม จะมีปริมาณเพิ่มขึ้นอยู่เสมอ ในกรณีนี้ Aggregation Results ก่อนหน้าในสตรีมผลลัพธ์นี้รับประกันว่าจะไม่มีการเปลี่ยนแปลงระหว่าง 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

ไม่บังคับ อธิบายตัวเลือกสำหรับการสืบค้นข้อมูล หากตั้งค่าไว้ ระบบจะแสดงผลสถิติการค้นหาเพิ่มเติม ไม่เช่นนั้น ระบบจะแสดงเฉพาะผลการค้นหา

ฟิลด์สหภาพ query_type การค้นหาที่เรียกใช้ query_type ต้องเป็นค่าใดค่าหนึ่งต่อไปนี้เท่านั้น
structured_query

StructuredQuery

การค้นหาแบบมีโครงสร้าง

ฟิลด์สหภาพ consistency_selector โหมดความสอดคล้องสำหรับธุรกรรมนี้ หากไม่ได้ตั้งค่า ระบบจะใช้ความสอดคล้องขั้นสูงโดยค่าเริ่มต้น consistency_selector ต้องเป็นค่าใดค่าหนึ่งต่อไปนี้เท่านั้น
transaction

bytes

เรียกใช้การค้นหาภายในธุรกรรมที่ใช้งานอยู่แล้ว

ค่าในส่วนนี้คือรหัสธุรกรรมที่ไม่ชัดเจนสำหรับดำเนินการค้นหา

new_transaction

TransactionOptions

เริ่มธุรกรรมใหม่และอ่านเอกสาร ค่าเริ่มต้นคือธุรกรรมแบบอ่านอย่างเดียว ระบบจะแสดงรหัสธุรกรรมใหม่เป็นคำตอบแรกในสตรีม

read_time

Timestamp

อ่านเอกสารแบบเดียวกับ ณ เวลาที่ระบุ

โดยต้องเป็นการประทับเวลาที่แม่นยำในระดับไมโครวินาทีภายใน 1 ชั่วโมงที่ผ่านมา หรือหากเปิดใช้การกู้คืนช่วงเวลาอยู่ ก็อาจเป็นการประทับเวลาแบบเต็มนาทีภายในช่วง 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

หากมี Firestore ได้ดำเนินการตามคำขอเสร็จสมบูรณ์แล้ว และจะไม่มีการส่งคืนเอกสารอีก

StructuredAggregationQuery

การค้นหา Firestore สำหรับเรียกใช้การรวมใน StructuredQuery

ช่อง
aggregations[]

Aggregation

ไม่บังคับ ชุดของการรวมที่จะใช้กับผลลัพธ์ของ structured_query

ข้อกำหนด

  • มีการรวมอย่างน้อย 1 รายการและไม่เกิน 5 รายการต่อการค้นหา
ฟิลด์สหภาพ 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 Infinity math เป็นไปตามมาตรฐาน IEEE-754

  • หากชุดค่ารวมว่างเปล่า ระบบจะแสดงผล NULL

  • แสดงผลลัพธ์เป็นเลขคู่เสมอ

ช่อง
field

FieldReference

ฟิลด์ที่จะรวบรวมข้อมูล

จำนวน

จำนวนเอกสารที่ตรงกับข้อความค้นหา

ฟังก์ชันการรวมข้อมูล COUNT(*) จะทำงานกับทั้งเอกสาร ดังนั้นจึงไม่ต้องใช้การอ้างอิงช่อง

ช่อง
up_to

Int64Value

ไม่บังคับ ข้อจำกัดที่ไม่บังคับเกี่ยวกับจำนวนเอกสารสูงสุดที่จะนับ

ซึ่งเป็นวิธีการตั้งค่าขอบเขตสูงสุดของจำนวนเอกสารที่จะสแกน ซึ่งช่วยจำกัดเวลาในการตอบสนอง และต้นทุน

ไม่ระบุจะถูกตีความว่าไม่มีขอบเขต

ตัวอย่างระดับสูง

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

ข้อกำหนด

  • ต้องมากกว่า 0 หากมี

ผลรวม

ผลรวมของมูลค่าของช่องที่ขอ

  • ระบบจะรวมเฉพาะค่าที่เป็นตัวเลขเท่านั้น ระบบจะข้ามค่าที่ไม่ใช่ตัวเลขทั้งหมดรวมถึง NULL

  • หากค่ารวมมี NaN ระบบจะแสดงผล NaN Infinity math เป็นไปตามมาตรฐาน IEEE-754

  • หากชุดค่ารวมเป็นค่าว่าง ระบบจะแสดงผลเป็น 0

  • แสดงผลจำนวนเต็ม 64 บิต หากจำนวนที่สรุปรวมทั้งหมดเป็นจำนวนเต็มและผลลัพธ์รวมไม่เกิน มิฉะนั้น ผลลัพธ์จะแสดงเป็นเลขคู่ โปรดทราบว่าแม้ว่าค่ารวมทั้งหมดจะเป็นจำนวนเต็ม แต่ผลลัพธ์จะแสดงค่าเป็นเลขคู่หากไม่สามารถให้พอดีกับจำนวนเต็มแบบมีเครื่องหมาย 64 บิต เมื่อกรณีนี้เกิดขึ้น ค่าที่ส่งกลับจะสูญเสียความแม่นยํา

  • เมื่อเกิดภาวะน้ำล้นเกินกำหนด การรวมจุดลอยตัวจะไม่กำหนด ซึ่งหมายความว่าการเรียกใช้การค้นหาเดียวกันซ้ำๆ โดยไม่มีการเปลี่ยนแปลงค่าที่สำคัญอาจให้ผลลัพธ์ที่แตกต่างกันเล็กน้อยในแต่ละครั้ง ในกรณีดังกล่าว ควรเก็บค่าไว้เป็นจำนวนเต็มเหนือเลขทศนิยม

ช่อง
field

FieldReference

ฟิลด์ที่จะรวบรวมข้อมูล

StructuredQuery

การค้นหา Firestore

ช่อง
select

Projection

ชุดย่อยของฟิลด์ที่จะแสดง (ไม่บังคับ)

การดำเนินการนี้เป็น DocumentMask ในเอกสารที่แสดงผลจากการค้นหา เมื่อไม่ได้ตั้งค่า ระบบจะถือว่าผู้โทรต้องการส่งคืนฟิลด์ทั้งหมด

from[]

CollectionSelector

คอลเล็กชันที่จะค้นหา

where

Filter

ตัวกรองที่จะใช้

order_by[]

Order

ลำดับที่จะใช้กับผลลัพธ์การค้นหา

Firestore ช่วยให้ผู้โทรแจ้งลำดับที่สมบูรณ์ สั่งซื้อบางส่วน หรือไม่เรียงลำดับเลย ในทุกกรณี Firestore รับประกันลำดับที่เสถียรตามกฎต่อไปนี้

  • ต้องมี order_by เพื่ออ้างอิงช่องทั้งหมดที่ใช้กับตัวกรองอสมการ
  • ทุกช่องที่ต้องอยู่ใน order_by แต่ยังไม่ได้ปรากฏจะต่อท้ายด้วยลำดับพจนานุกรมของชื่อช่อง
  • หากไม่ได้ระบุคำสั่งซื้อใน __name__ ระบบจะต่อท้ายคำสั่งซื้อดังกล่าวโดยค่าเริ่มต้น

ระบบจะต่อท้ายช่องด้วยทิศทางการจัดเรียงเดียวกันกับลำดับสุดท้ายที่ระบุไว้ หรือ "ASCENDING" หากไม่ได้ระบุคำสั่งซื้อ เช่น

  • 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

ข้อกำหนด

  • ค่าต้องมากกว่าหรือเท่ากับ 0 หากระบุ
limit

Int32Value

จำนวนผลลัพธ์สูงสุดที่จะแสดง

มีผลหลังจากข้อจำกัดอื่นๆ ทั้งหมด

ข้อกำหนด

  • ค่าต้องมากกว่าหรือเท่ากับ 0 หากระบุ

CollectionSelector

คอลเล็กชันที่เลือก เช่น messages as m1

ช่อง
collection_id

string

รหัสคอลเล็กชัน เมื่อตั้งค่าแล้ว ให้เลือกเฉพาะคอลเล็กชันที่มีรหัสนี้

all_descendants

bool

เมื่อเป็นเท็จ ให้เลือกเฉพาะคอลเล็กชันที่เป็นรายการย่อยของ parent ที่ระบุไว้ใน RunQueryRequest ที่มีเท่านั้น เมื่อเป็นจริง ให้เลือกคอลเล็กชันองค์ประกอบสืบทอดทั้งหมด

CompositeFilter

ตัวกรองที่ผสานตัวกรองอื่นๆ หลายรายการโดยใช้โอเปอเรเตอร์ที่กำหนด

ช่อง
op

Operator

โอเปอเรเตอร์สำหรับการรวมตัวกรองหลายรายการ

filters[]

Filter

รายการตัวกรองที่จะรวม

ข้อกำหนด

  • มีตัวกรองอย่างน้อยหนึ่งรายการ

ผู้ประกอบธุรกิจ

โอเปอเรเตอร์ตัวกรองผสม

Enum
OPERATOR_UNSPECIFIED ไม่ระบุ ต้องไม่ใช้ค่านี้
AND ต้องใช้เอกสารตามตัวกรองที่รวมกันทั้งหมด
OR ต้องใช้เอกสารเพื่อให้เป็นไปตามตัวกรองที่รวมกันอย่างน้อย 1 รายการ

ทิศทาง

ทิศทางการจัดเรียง

Enum
DIRECTION_UNSPECIFIED ไม่ระบุ
ASCENDING น้อยไปมาก
DESCENDING มากไปน้อย

FieldFilter

ตัวกรองในช่องที่เฉพาะเจาะจง

ช่อง
field

FieldReference

ช่องที่ใช้กรอง

op

Operator

โอเปอเรเตอร์ที่จะกรอง

value

Value

ค่าที่จะเปรียบเทียบ

ผู้ประกอบธุรกิจ

โอเปอเรเตอร์ตัวกรองฟิลด์

Enum
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 ที่ระบุเท่ากับอย่างน้อย 1 ค่าในอาร์เรย์ที่ระบุ

ข้อกำหนด

  • 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

FieldReference

การอ้างอิงช่องในเอกสาร เช่น stats.operations

ช่อง
field_path

string

การอ้างอิงช่องในเอกสาร

ข้อกำหนด

  • ต้องเป็นสตริงที่คั่นด้วยจุด (.) โดยแต่ละส่วนสอดคล้องกับข้อจำกัด document field name

กรอง

ตัวกรอง

ช่อง
ฟิลด์สหภาพ filter_type ประเภทตัวกรอง filter_type ต้องเป็นค่าใดค่าหนึ่งต่อไปนี้เท่านั้น
composite_filter

CompositeFilter

ตัวกรองแบบผสม

field_filter

FieldFilter

ตัวกรองในช่องเอกสาร

unary_filter

UnaryFilter

ตัวกรองที่ใช้อาร์กิวเมนต์เพียงรายการเดียว

สั่งซื้อ

คำสั่งซื้อในช่อง

ช่อง
field

FieldReference

ช่องที่จะเรียงลำดับ

direction

Direction

ทิศทางการสั่งซื้อ ค่าเริ่มต้นคือ ASCENDING

การฉายภาพ

การฉายภาพของช่องของเอกสารที่จะแสดงผล

ช่อง
fields[]

FieldReference

ช่องที่จะแสดงผล

หากเว้นว่างไว้ ระบบจะแสดงผลทุกช่อง หากต้องการแสดงผลเฉพาะชื่อเอกสาร ให้ใช้ ['__name__']

UnaryFilter

ตัวกรองที่มีตัวถูกดำเนินการเดี่ยว

ช่อง
op

Operator

โอเปอเรเตอร์สากลที่จะใช้

ฟิลด์สหภาพ operand_type อาร์กิวเมนต์ของตัวกรอง operand_type ต้องเป็นค่าใดค่าหนึ่งต่อไปนี้เท่านั้น
field

FieldReference

ช่องที่จะใช้โอเปอเรเตอร์

ผู้ประกอบธุรกิจ

โอเปอเรเตอร์สากล

Enum
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

รหัสเป้าหมายที่ระบุเป้าหมายในสตรีม ต้องเป็นจำนวนบวกและไม่ใช่ 0

หาก 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 ไม่ใช่ 0 ต้องไม่มีเป้าหมายที่ใช้งานอยู่ในสตรีมนี้ที่มีรหัสเดียวกัน

once

bool

ควรนำเป้าหมายออกเมื่อเป็นปัจจุบันและสอดคล้องกันหรือไม่

expected_count

Int32Value

จำนวนเอกสารที่ตรงกับการค้นหาครั้งล่าสุดในโทเค็นประวัติย่อหรือเวลาที่อ่าน

ค่านี้จะเกี่ยวข้องเฉพาะในกรณีที่ระบุ resume_type มีค่านี้อยู่และมีสัญญาณมากกว่า 0 ที่ลูกค้าต้องการให้ 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 หรือ 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

การค้นหาแบบมีโครงสร้าง

TargetChange

เป้าหมายที่กำลังดูมีการเปลี่ยนแปลง

ช่อง
target_change_type

TargetChangeType

ประเภทของการเปลี่ยนแปลงที่เกิดขึ้น

target_ids[]

int32

รหัสของเป้าหมายที่มีการเปลี่ยนแปลง

หากเว้นว่างไว้ การเปลี่ยนแปลงจะมีผลกับเป้าหมายทั้งหมด

ไม่ได้กำหนดลำดับของรหัสเป้าหมาย

cause

Status

ข้อผิดพลาดที่ทำให้เกิดการเปลี่ยนแปลงนี้ (หากมี)

resume_token

bytes

โทเค็นที่สามารถใช้เพื่อสตรีมต่อสำหรับ target_ids ที่ระบุ หรือเป้าหมายทั้งหมดหาก target_ids ว่างเปล่า

ไม่ได้ตั้งค่าสำหรับการเปลี่ยนแปลงเป้าหมายทุกครั้ง

read_time

Timestamp

read_time ที่สอดคล้องกันสำหรับ target_ids ที่ระบุ (ละเว้นเมื่อ target_id ไม่อยู่ในสแนปชอตที่สอดคล้องกัน)

สตรีมจะส่ง read_time ที่มี target_ids ว่างเปล่าเมื่อสตรีมทั้งหมดถึงสแนปชอตใหม่ที่สอดคล้องกัน เรารับประกันว่าข้อความ ADD, CURRENT และ RESET จะให้ผลลัพธ์ (ในท้ายที่สุด) เพื่อให้ได้สแนปชอตใหม่ที่สอดคล้องกัน (แต่ข้อความ NO_CHANGE และ REMOVE ไม่ได้)

ในสตรีมหนึ่งๆ ถือว่า read_time เพิ่มขึ้นอย่างไม่น่าเชื่อ

TargetChangeType

ประเภทของการเปลี่ยนแปลง

Enum
NO_CHANGE ไม่มีการเปลี่ยนแปลงใดๆ ใช้เพื่อส่ง resume_token ที่อัปเดตแล้วเท่านั้น
ADD เพิ่มเป้าหมายแล้ว
REMOVE นำเป้าหมายออกแล้ว
CURRENT

เป้าหมายแสดงถึงการเปลี่ยนแปลงทั้งหมดที่ทำก่อนที่จะเพิ่มเป้าหมายลงในสตรีม

ระบบจะส่งข้อมูลนี้หลังจากหรือด้วย read_time ซึ่งมากกว่าหรือเท่ากับเวลาที่เพิ่มเป้าหมาย

Listener จะรอการเปลี่ยนแปลงนี้ได้หากต้องการอรรถศาสตร์แบบอ่านหลังเขียน

RESET

ระบบรีเซ็ตเป้าหมายแล้ว และจะแสดงสถานะเริ่มต้นใหม่ของเป้าหมายในการเปลี่ยนแปลงครั้งต่อๆ ไป

หลังจากสถานะเริ่มต้นเสร็จสมบูรณ์แล้ว ระบบจะแสดงผล CURRENT แม้ว่าก่อนหน้านี้จะมีการระบุเป้าหมายเป็น CURRENT ก็ตาม

TransactionOptions

ตัวเลือกสำหรับการสร้างธุรกรรมใหม่

ช่อง
ฟิลด์สหภาพ mode รูปแบบธุรกรรม mode ต้องเป็นค่าใดค่าหนึ่งต่อไปนี้เท่านั้น
read_only

ReadOnly

ธุรกรรมนี้ใช้สําหรับการดำเนินการอ่านได้เท่านั้น

read_write

ReadWrite

ธุรกรรมนี้ใช้ได้สำหรับทั้งการดำเนินการอ่านและเขียน

ReadOnly

ตัวเลือกสำหรับธุรกรรมที่ใช้อ่านเอกสารได้เท่านั้น

ช่อง
ฟิลด์สหภาพ consistency_selector โหมดความสอดคล้องสำหรับธุรกรรมนี้ หากไม่ได้ตั้งค่า ระบบจะใช้ความสอดคล้องขั้นสูงโดยค่าเริ่มต้น consistency_selector ต้องเป็นค่าใดค่าหนึ่งต่อไปนี้เท่านั้น
read_time

Timestamp

อ่านเอกสารในเวลาที่ระบุ

โดยต้องเป็นการประทับเวลาที่แม่นยำในระดับไมโครวินาทีภายใน 1 ชั่วโมงที่ผ่านมา หรือหากเปิดใช้การกู้คืนช่วงเวลาอยู่ ก็อาจเป็นการประทับเวลาแบบเต็มนาทีภายในช่วง 7 วันที่ผ่านมาด้วย

ReadWrite

ตัวเลือกสำหรับธุรกรรมที่ใช้เพื่ออ่านและเขียนเอกสารได้

Firestore ไม่อนุญาตให้คำขอการตรวจสอบสิทธิ์ของบุคคลที่สามสร้างธุรกรรมแบบอ่าน-เขียน

ช่อง
retry_transaction

bytes

ธุรกรรมที่ไม่บังคับเพื่อลองใหม่

UpdateDocumentRequest

คำขอสำหรับ Firestore.UpdateDocument

ช่อง
document

Document

ต้องระบุ เอกสารที่อัปเดตแล้ว สร้างเอกสารหากยังไม่มี

update_mask

DocumentMask

ช่องที่จะอัปเดต เส้นทางฟิลด์ในมาสก์อาจไม่มีชื่อที่สงวนไว้

หากเอกสารอยู่ในเซิร์ฟเวอร์และมีช่องที่ไม่ได้อ้างอิงในมาสก์ ช่องจะไม่มีการเปลี่ยนแปลง ระบบจะลบช่องที่อ้างอิงในมาสก์แต่ไม่มีอยู่ในเอกสารอินพุตออกจากเอกสารบนเซิร์ฟเวอร์

mask

DocumentMask

ช่องที่จะแสดงผล หากไม่ได้ตั้งค่า ระบบจะแสดงฟิลด์ทั้งหมด

หากเอกสารมีช่องที่ไม่ได้อยู่ในมาสก์นี้ ระบบจะไม่แสดงช่องนั้นในคำตอบ

current_document

Precondition

เงื่อนไขที่กำหนดไว้ล่วงหน้าในเอกสารซึ่งไม่บังคับ คำขอจะล้มเหลวหากมีการตั้งค่านี้ไว้และไม่เป็นไปตามเอกสารเป้าหมาย

ค่า

ข้อความที่เก็บประเภทค่าที่รองรับใดก็ได้

ช่อง
ฟิลด์สหภาพ value_type ต้องมีชุดค่า value_type ต้องเป็นค่าใดค่าหนึ่งต่อไปนี้เท่านั้น
null_value

NullValue

ค่า Null

boolean_value

bool

ค่าบูลีน

integer_value

int64

ค่าจำนวนเต็ม

double_value

double

ค่าทศนิยม

timestamp_value

Timestamp

ค่าการประทับเวลา

แม่นยำระดับไมโครวินาทีเท่านั้น เมื่อจัดเก็บ ระบบจะปัดเศษความแม่นยำเพิ่มเติมลง

string_value

string

ค่าสตริง

สตริงที่แสดงเป็น UTF-8 จะต้องมีขนาดไม่เกิน 1 MiB - 89 ไบต์ เฉพาะ 1,500 ไบต์แรกของการแสดง UTF-8 เท่านั้นที่จะพิจารณาตามคำค้นหา

bytes_value

bytes

ค่าไบต์

ต้องไม่เกิน 1 MiB - 89 ไบต์ เฉพาะ 1,500 ไบต์แรกเท่านั้นที่จะพิจารณาสำหรับคำค้นหา

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-th ในคำขอ

commit_time

Timestamp

เวลาที่คอมมิตเกิดขึ้น การอ่านที่มี read_time เท่ากับหรือมากกว่าจะรับประกันได้ว่าจะเห็นผลของการเขียนนี้

WriteResult

ผลของการใช้การเขียน

ช่อง
update_time

Timestamp

เวลาอัปเดตเอกสารครั้งล่าสุดหลังจากใช้การเขียน ไม่ได้ตั้งค่าไว้หลัง delete

หากการเขียนไม่ได้เปลี่ยนแปลงเอกสารจริงๆ นี่จะเป็นupdate_time ก่อนหน้า

transform_results[]

Value

ผลการใช้ DocumentTransform.FieldTransform แต่ละรายการในลำดับเดียวกัน