Package google.firestore.v1beta1

Chỉ mục

Firestore

Dịch vụ Cloud Firestore.

Cloud Firestore là một cơ sở dữ liệu tài liệu NoSQL dựa trên nền tảng đám mây, được quản lý toàn diện, nhanh chóng và được quản lý toàn diện, giúp đơn giản hoá việc lưu trữ, đồng bộ hoá và truy vấn dữ liệu cho các ứng dụng di động, web và IoT trên quy mô toàn cầu. Thư viện ứng dụng của họ cung cấp tính năng đồng bộ hoá trực tiếp và hỗ trợ ngoại tuyến, đồng thời các tính năng bảo mật và khả năng tích hợp với Firebase và Google Cloud Platform giúp đẩy nhanh quá trình xây dựng các ứng dụng thực sự không cần máy chủ.

BatchGetDocuments

rpc BatchGetDocuments(BatchGetDocumentsRequest) returns (BatchGetDocumentsResponse)

Lấy nhiều tài liệu.

Chúng tôi không đảm bảo trả lại các tài liệu bằng phương thức này theo đúng thứ tự mà chúng được yêu cầu.

Phạm vi uỷ quyền

Yêu cầu một trong các phạm vi OAuth sau đây:

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

Để biết thêm thông tin, hãy xem bài viết Tổng quan về hoạt động xác thực.

BatchWrite

rpc BatchWrite(BatchWriteRequest) returns (BatchWriteResponse)

Áp dụng một loạt thao tác ghi.

Phương thức BatchWrite không áp dụng nguyên tử các thao tác ghi và có thể áp dụng các thao tác này không đúng thứ tự. Phương thức không cho phép nhiều lần ghi trên mỗi tài liệu. Mỗi lần ghi thành công hoặc không thành công một cách độc lập. Xem BatchWriteResponse để biết trạng thái thành công của mỗi lần ghi.

Nếu bạn yêu cầu một tập hợp lượt ghi được áp dụng tỷ lệ, hãy sử dụng Commit.

Phạm vi uỷ quyền

Yêu cầu một trong các phạm vi OAuth sau đây:

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

Để biết thêm thông tin, hãy xem bài viết Tổng quan về hoạt động xác thực.

BeginTransaction

rpc BeginTransaction(BeginTransactionRequest) returns (BeginTransactionResponse)

Bắt đầu một giao dịch mới.

Phạm vi uỷ quyền

Yêu cầu một trong các phạm vi OAuth sau đây:

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

Để biết thêm thông tin, hãy xem bài viết Tổng quan về hoạt động xác thực.

Cam kết

rpc Commit(CommitRequest) returns (CommitResponse)

Xác nhận giao dịch, đồng thời cập nhật tài liệu (không bắt buộc).

Phạm vi uỷ quyền

Yêu cầu một trong các phạm vi OAuth sau đây:

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

Để biết thêm thông tin, hãy xem bài viết Tổng quan về hoạt động xác thực.

CreateDocument

rpc CreateDocument(CreateDocumentRequest) returns (Document)

Tạo một tài liệu mới.

Phạm vi uỷ quyền

Yêu cầu một trong các phạm vi OAuth sau đây:

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

Để biết thêm thông tin, hãy xem bài viết Tổng quan về hoạt động xác thực.

DeleteDocument

rpc DeleteDocument(DeleteDocumentRequest) returns (Empty)

Xoá tài liệu.

Phạm vi uỷ quyền

Yêu cầu một trong các phạm vi OAuth sau đây:

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

Để biết thêm thông tin, hãy xem bài viết Tổng quan về hoạt động xác thực.

GetDocument

rpc GetDocument(GetDocumentRequest) returns (Document)

Nhận một tài liệu.

Phạm vi uỷ quyền

Yêu cầu một trong các phạm vi OAuth sau đây:

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

Để biết thêm thông tin, hãy xem bài viết Tổng quan về hoạt động xác thực.

ListCollectionIds

rpc ListCollectionIds(ListCollectionIdsRequest) returns (ListCollectionIdsResponse)

Liệt kê tất cả mã bộ sưu tập bên dưới một tài liệu.

Phạm vi uỷ quyền

Yêu cầu một trong các phạm vi OAuth sau đây:

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

Để biết thêm thông tin, hãy xem bài viết Tổng quan về hoạt động xác thực.

ListDocuments

rpc ListDocuments(ListDocumentsRequest) returns (ListDocumentsResponse)

Liệt kê tài liệu.

Phạm vi uỷ quyền

Yêu cầu một trong các phạm vi OAuth sau đây:

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

Để biết thêm thông tin, hãy xem bài viết Tổng quan về hoạt động xác thực.

Nghe

rpc Listen(ListenRequest) returns (ListenResponse)

Lắng nghe các thay đổi. Phương thức này chỉ áp dụng được thông qua gRPC hoặc WebChannel (không phải REST).

Phạm vi uỷ quyền

Yêu cầu một trong các phạm vi OAuth sau đây:

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

Để biết thêm thông tin, hãy xem bài viết Tổng quan về hoạt động xác thực.

PartitionQuery

rpc PartitionQuery(PartitionQueryRequest) returns (PartitionQueryResponse)

Phân vùng một truy vấn bằng cách trả về các con trỏ phân vùng có thể dùng để chạy truy vấn song song. Con trỏ phân vùng được trả về là các điểm phân tách có thể được RunQuery sử dụng làm điểm bắt đầu/điểm kết thúc cho kết quả truy vấn.

Phạm vi uỷ quyền

Yêu cầu một trong các phạm vi OAuth sau đây:

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

Để biết thêm thông tin, hãy xem bài viết Tổng quan về hoạt động xác thực.

Khôi phục

rpc Rollback(RollbackRequest) returns (Empty)

Khôi phục giao dịch.

Phạm vi uỷ quyền

Yêu cầu một trong các phạm vi OAuth sau đây:

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

Để biết thêm thông tin, hãy xem bài viết Tổng quan về hoạt động xác thực.

RunAggregationQuery

rpc RunAggregationQuery(RunAggregationQueryRequest) returns (RunAggregationQueryResponse)

Chạy một truy vấn tổng hợp.

Thay vì tạo kết quả Document như Firestore.RunQuery, API này cho phép chạy phương thức tổng hợp để tạo ra một loạt AggregationResult phía máy chủ.

Ví dụ cấp cao:

-- Return the number of documents in table given a filter.
SELECT COUNT(*) FROM ( SELECT * FROM k where a = true );
Phạm vi uỷ quyền

Yêu cầu một trong các phạm vi OAuth sau đây:

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

Để biết thêm thông tin, hãy xem bài viết Tổng quan về hoạt động xác thực.

RunQuery

rpc RunQuery(RunQueryRequest) returns (RunQueryResponse)

Chạy một truy vấn.

Phạm vi uỷ quyền

Yêu cầu một trong các phạm vi OAuth sau đây:

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

Để biết thêm thông tin, hãy xem bài viết Tổng quan về hoạt động xác thực.

UpdateDocument

rpc UpdateDocument(UpdateDocumentRequest) returns (Document)

Cập nhật hoặc chèn một tài liệu.

Phạm vi uỷ quyền

Yêu cầu một trong các phạm vi OAuth sau đây:

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

Để biết thêm thông tin, hãy xem bài viết Tổng quan về hoạt động xác thực.

Viết

rpc Write(WriteRequest) returns (WriteResponse)

Tạo luồng theo thứ tự cập nhật và xoá tài liệu. Phương thức này chỉ áp dụng được thông qua gRPC hoặc WebChannel (không phải REST).

Phạm vi uỷ quyền

Yêu cầu một trong các phạm vi OAuth sau đây:

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

Để biết thêm thông tin, hãy xem bài viết Tổng quan về hoạt động xác thực.

AggregationResult

Kết quả của một nhóm duy nhất trong một truy vấn tổng hợp trên Firestore.

Khoá của aggregate_fields là giống nhau đối với tất cả kết quả trong một truy vấn tổng hợp, không giống như các truy vấn tài liệu có thể có các trường khác nhau cho mỗi kết quả.

Trường
aggregate_fields

map<string, Value>

Kết quả của các hàm tổng hợp, ví dụ: COUNT(*) AS total_docs.

Khoá là alias được gán cho hàm tổng hợp trên dữ liệu đầu vào và kích thước của tập hợp map này bằng số lượng hàm tổng hợp trong truy vấn.

ArrayValue

Giá trị mảng.

Trường
values[]

Value

Giá trị trong mảng.

BatchGetDocumentsRequest

Yêu cầu đối với Firestore.BatchGetDocuments.

Trường
database

string

Bắt buộc. Tên cơ sở dữ liệu. Theo định dạng: projects/{project_id}/databases/{database_id}.

documents[]

string

Tên của tài liệu cần truy xuất. Theo định dạng: projects/{project_id}/databases/{database_id}/documents/{document_path}. Yêu cầu sẽ không thành công nếu có bất kỳ tài liệu nào không phải là tài nguyên con của database đã cho. Tên trùng lặp sẽ bị loại bỏ.

mask

DocumentMask

Các trường cần trả về. Nếu không được đặt, hàm sẽ trả về tất cả các trường.

Nếu tài liệu có một trường không xuất hiện trong mặt nạ này, thì trường đó sẽ không được trả về trong phản hồi.

Trường hợp consistency_selector. Chế độ nhất quán cho giao dịch này. Nếu bạn không đặt chính sách này, thì chế độ mặc định sẽ là mức độ nhất quán cao. consistency_selector chỉ có thể là một trong những trạng thái sau:
transaction

bytes

Đọc tài liệu trong một giao dịch.

new_transaction

TransactionOptions

Bắt đầu một giao dịch mới và đọc tài liệu. Mặc định là giao dịch chỉ đọc. Mã giao dịch mới sẽ được trả về dưới dạng phản hồi đầu tiên trong luồng.

read_time

Timestamp

Đọc tài liệu ở một thời điểm nhất định.

Đây phải là dấu thời gian có độ chính xác tính bằng micrô giây trong vòng 1 giờ qua, hoặc nếu tính năng Khôi phục đúng thời điểm được bật, thì bạn có thể thêm dấu thời gian là toàn bộ phút trong 7 ngày qua.

BatchGetDocumentsResponse

Phản hồi được truyền trực tuyến cho Firestore.BatchGetDocuments.

Trường
transaction

bytes

Giao dịch được bắt đầu theo yêu cầu này. Sẽ chỉ được đặt trong phản hồi đầu tiên và chỉ khi BatchGetDocumentsRequest.new_transaction được đặt trong yêu cầu.

read_time

Timestamp

Thời điểm đọc tài liệu. Điều này có thể tăng theo đơn giá, trong trường hợp này, các tài liệu trước đó trong luồng kết quả được đảm bảo sẽ không thay đổi giữa read_time và tài liệu này.

Trường hợp result. Một kết quả duy nhất. Trường này có thể trống nếu máy chủ vừa trả về một giao dịch. result chỉ có thể là một trong những trạng thái sau:
found

Document

Giấy tờ được yêu cầu.

missing

string

Tên tài liệu đã được yêu cầu nhưng không tồn tại. Theo định dạng: projects/{project_id}/databases/{database_id}/documents/{document_path}.

BatchWriteRequest

Yêu cầu đối với Firestore.BatchWrite.

Trường
database

string

Bắt buộc. Tên cơ sở dữ liệu. Theo định dạng: projects/{project_id}/databases/{database_id}.

writes[]

Write

Ghi để áp dụng.

Phương thức không áp dụng chức năng ghi nguyên tử và không đảm bảo thứ tự. Mỗi lần ghi thành công hoặc không thành công một cách độc lập. Bạn không thể ghi vào cùng một tài liệu nhiều lần cho mỗi yêu cầu.

labels

map<string, string>

Các nhãn được liên kết với lượt ghi theo lô này.

BatchWriteResponse

Phản hồi của Firestore.BatchWrite.

Trường
write_results[]

WriteResult

Kết quả của việc áp dụng các lượt ghi.

Kết quả ghi thứ i này tương ứng với lượt ghi thứ i trong yêu cầu.

status[]

Status

Trạng thái áp dụng các lượt ghi.

Trạng thái ghi thứ i này tương ứng với trạng thái ghi thứ i trong yêu cầu.

BeginTransactionRequest

Yêu cầu đối với Firestore.BeginTransaction.

Trường
database

string

Bắt buộc. Tên cơ sở dữ liệu. Theo định dạng: projects/{project_id}/databases/{database_id}.

options

TransactionOptions

Các lựa chọn cho giao dịch. Mặc định là giao dịch đọc-ghi.

BeginTransactionResponse

Câu trả lời cho Firestore.BeginTransaction.

Trường
transaction

bytes

Giao dịch đã bắt đầu.

BitSequence

Một chuỗi các bit, được mã hoá bằng một mảng byte.

Mỗi byte trong mảng byte bitmap lưu trữ 8 bit của chuỗi. Ngoại lệ duy nhất là byte cuối cùng, có thể lưu trữ 8 hoặc ít hơn bit. padding xác định số bit của byte cuối cùng sẽ bị bỏ qua dưới dạng "khoảng đệm". Giá trị của các bit "khoảng đệm" này chưa được chỉ định và phải bị bỏ qua.

Để truy xuất bit đầu tiên, bit 0, hãy tính: (bitmap[0] & 0x01) != 0. Để truy xuất bit thứ hai, bit 1, hãy tính: (bitmap[0] & 0x02) != 0. Để truy xuất bit thứ ba, bit 2, hãy tính: (bitmap[0] & 0x04) != 0. Để truy xuất bit thứ tư, bit 3, hãy tính: (bitmap[0] & 0x08) != 0. Để truy xuất bit n, hãy tính: (bitmap[n / 8] & (0x01 << (n % 8))) != 0.

"Kích thước" của BitSequence (số bit trong phần này) được tính theo công thức sau: (bitmap.length * 8) - padding.

Trường
bitmap

bytes

Các byte mã hoá chuỗi bit. Có thể có độ dài bằng 0.

padding

int32

Số bit của byte cuối cùng trong bitmap cần bỏ qua dưới dạng "khoảng đệm". Nếu độ dài của bitmap bằng 0, thì giá trị này phải là 0. Nếu không, giá trị này phải nằm trong khoảng từ 0 đến 7.

BloomFilter

Bộ lọc hoa (https://en.wikipedia.org/wiki/Bloom_filter).

Bộ lọc bloom băm các mục nhập với MD5 và coi hàm băm 128 bit thu được là 2 giá trị băm 64 bit riêng biệt, được hiểu là số nguyên không dấu sử dụng mã hóa bổ sung 2.

Sau đó, hai giá trị băm này (có tên là h1h2) được dùng để tính toán giá trị hàm băm hash_count bằng công thức, bắt đầu từ i=0:

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

Sau đó, các giá trị kết quả này được lấy mô-đun số bit trong bộ lọc nở để lấy các bit của bộ lọc nở để kiểm tra mục nhập cho trước.

Trường
bits

BitSequence

Dữ liệu về bộ lọc hoa.

hash_count

int32

Số hàm băm mà thuật toán sử dụng.

CommitRequest

Yêu cầu đối với Firestore.Commit.

Trường
database

string

Bắt buộc. Tên cơ sở dữ liệu. Theo định dạng: projects/{project_id}/databases/{database_id}.

writes[]

Write

Ghi để áp dụng.

Luôn được thực thi tỉ mỉ và theo thứ tự.

transaction

bytes

Nếu được đặt, sẽ áp dụng tất cả lượt ghi trong giao dịch này và thay đổi tuỳ chọn đó.

CommitResponse

Câu trả lời cho Firestore.Commit.

Trường
write_results[]

WriteResult

Kết quả của việc áp dụng các lượt ghi.

Kết quả ghi thứ i này tương ứng với lượt ghi thứ i trong yêu cầu.

commit_time

Timestamp

Thời gian diễn ra cam kết. Bất kỳ lượt đọc nào có read_time bằng hoặc lớn hơn đều đảm bảo thấy được tác động của lệnh xác nhận.

CreateDocumentRequest

Yêu cầu đối với Firestore.CreateDocument.

Trường
parent

string

Bắt buộc. Tài nguyên mẹ. Ví dụ: projects/{project_id}/databases/{database_id}/documents hoặc projects/{project_id}/databases/{database_id}/documents/chatrooms/{chatroom_id}

collection_id

string

Bắt buộc. Mã bộ sưu tập (tương ứng với parent) trong danh sách. Ví dụ: chatrooms.

document_id

string

Mã tài liệu do khách hàng chỉ định để sử dụng cho tài liệu này.

Không bắt buộc. Nếu không chỉ định, dịch vụ sẽ chỉ định một mã nhận dạng.

document

Document

Bắt buộc. Tài liệu cần tạo. Không được đặt name.

mask

DocumentMask

Các trường cần trả về. Nếu không được đặt, hàm sẽ trả về tất cả các trường.

Nếu tài liệu có một trường không xuất hiện trong mặt nạ này, thì trường đó sẽ không được trả về trong phản hồi.

Con trỏ

Một vị trí trong nhóm kết quả truy vấn.

Trường
values[]

Value

Các giá trị đại diện cho một vị trí, theo thứ tự mà các giá trị đó xuất hiện theo thứ tự theo mệnh đề của truy vấn.

Có thể chứa ít giá trị hơn mức được chỉ định theo thứ tự theo mệnh đề.

before

bool

Nếu vị trí ngay trước hoặc ngay sau giá trị đã cho, so với thứ tự sắp xếp được xác định theo truy vấn.

DeleteDocumentRequest

Yêu cầu đối với Firestore.DeleteDocument.

Trường
name

string

Bắt buộc. Tên tài nguyên của Tài liệu cần xoá. Theo định dạng: projects/{project_id}/databases/{database_id}/documents/{document_path}.

current_document

Precondition

Điều kiện tiên quyết (không bắt buộc) trên tài liệu. Yêu cầu sẽ không thành công nếu bạn đặt và không đáp ứng yêu cầu này trong tài liệu đích.

Tài liệu

Tài liệu về Firestore.

Không được vượt quá 1 MiB – 4 byte.

Trường
name

string

Tên tài nguyên của tài liệu, ví dụ: projects/{project_id}/databases/{database_id}/documents/{document_path}.

fields

map<string, Value>

create_time

Timestamp

Chỉ có đầu ra. Thời điểm tạo tài liệu.

Giá trị này tăng đơn điệu khi một tài liệu bị xoá rồi được tạo lại. Bạn cũng có thể so sánh giá trị này với giá trị của các tài liệu khác và read_time của một truy vấn.

update_time

Timestamp

Chỉ có đầu ra. Thời điểm thay đổi tài liệu lần gần đây nhất.

Ban đầu, giá trị này được thiết lập thành create_time, sau đó tăng lên đơn điệu với mỗi thay đổi đối với tài liệu. Bạn cũng có thể so sánh giá trị này với giá trị của các tài liệu khác và read_time của một truy vấn.

DocumentChange

Document đã thay đổi.

Có thể là kết quả của nhiều writes, bao gồm cả những lần xoá, mà cuối cùng dẫn đến một giá trị mới cho Document.

Có thể trả về nhiều thông báo DocumentChange cho cùng một thay đổi logic, nếu nhiều mục tiêu bị ảnh hưởng.

Trường
document

Document

Trạng thái mới của Document.

Nếu bạn đặt mask, thì chỉ chứa các trường đã được cập nhật hoặc thêm.

target_ids[]

int32

Bộ mã mục tiêu của các mục tiêu khớp với tài liệu này.

removed_target_ids[]

int32

Một bộ mã mục tiêu cho những mục tiêu không còn khớp với tài liệu này.

DocumentDelete

Đã xoá một Document.

Có thể là kết quả của nhiều writes, bao gồm cả nội dung cập nhật, lần cuối cùng trong số đó đã xoá Document.

Có thể trả về nhiều thông báo DocumentDelete cho cùng một thao tác xoá theo logic, nếu nhiều mục tiêu bị ảnh hưởng.

Trường
document

string

Tên tài nguyên của Document đã bị xoá.

removed_target_ids[]

int32

Một tập hợp mã mục tiêu cho các mục tiêu từng khớp với thực thể này.

read_time

Timestamp

Dấu thời gian đọc mà hành động xoá được quan sát.

Lớn hơn hoặc bằng commit_time của kết quả xoá.

DocumentMask

Một tập hợp các đường dẫn trường trên tài liệu. Dùng để giới hạn thao tác tải hoặc cập nhật trên một tài liệu trong một nhóm nhỏ các trường của tài liệu đó. Lớp này khác với các mặt nạ cho trường (field mask) tiêu chuẩn vì lớp này luôn thuộc phạm vi của Document, đồng thời có tính đến tính chất động của Value.

Trường
field_paths[]

string

Danh sách các đường dẫn trường trong mặt nạ. Hãy xem Document.fields để biết tài liệu tham khảo về cú pháp đường dẫn trường.

DocumentRemove

Document đã bị xoá khỏi chế độ xem của các mục tiêu.

Được gửi nếu tài liệu không còn liên quan đến mục tiêu và nằm ngoài tầm nhìn. Có thể được gửi thay cho DocumentDelete hoặc DocumentChange nếu máy chủ không thể gửi giá trị mới của tài liệu.

Có thể trả về nhiều thông báo DocumentRemove cho cùng một lượt ghi hoặc xoá theo logic nếu nhiều mục tiêu bị ảnh hưởng.

Trường
document

string

Tên tài nguyên của Document đã nằm ngoài khung hiển thị.

removed_target_ids[]

int32

Một bộ mã mục tiêu cho các mục tiêu đã khớp với tài liệu này trước đây.

read_time

Timestamp

Dấu thời gian đọc mà quan sát thấy hoạt động xoá.

Lớn hơn hoặc bằng commit_time của mức thay đổi/xoá/xoá.

DocumentTransform

Phiên bản biến đổi của tài liệu.

Trường
document

string

Tên của tài liệu cần chuyển đổi.

field_transforms[]

FieldTransform

Danh sách các phép biến đổi theo thứ tự áp dụng cho các trường của tài liệu. Không được để trống trường này.

FieldTransform

Biến đổi một trường của tài liệu.

Trường
field_path

string

Đường dẫn của trường. Hãy xem Document.fields để biết tài liệu tham khảo về cú pháp đường dẫn trường.

Trường hợp transform_type. Quy tắc chuyển đổi để áp dụng cho trường. transform_type chỉ có thể là một trong những trạng thái sau:
set_to_server_value

ServerValue

Đặt trường này thành giá trị máy chủ đã cho.

increment

Value

Cộng giá trị đã cho vào giá trị hiện tại của trường.

Đây phải là một số nguyên hoặc một giá trị kép. Nếu trường không phải là số nguyên hoặc giá trị kép, hoặc nếu trường chưa tồn tại, thì phép biến đổi sẽ đặt trường đó thành giá trị đã cho. Nếu một trong hai giá trị đã cho hoặc giá trị hiện tại của trường là nhân đôi, thì cả hai giá trị sẽ được thể hiện là nhân đôi. Số học kép và cách biểu diễn các giá trị kép tuân theo ngữ nghĩa IEEE 754. Nếu có tràn số nguyên dương/âm, trường sẽ được phân giải thành số nguyên dương/âm lớn nhất.

maximum

Value

Đặt trường thành giá trị tối đa của giá trị hiện tại và giá trị đã cho.

Đây phải là một số nguyên hoặc một giá trị kép. Nếu trường không phải là số nguyên hoặc giá trị kép, hoặc nếu trường chưa tồn tại, thì phép biến đổi sẽ đặt trường đó thành giá trị đã cho. Nếu áp dụng toán tử tối đa, trong đó trường và giá trị nhập là loại hỗn hợp (nghĩa là một là số nguyên và một là toán tử kép), thì trường sẽ nhận loại toán hạng lớn hơn. Nếu các toán hạng tương đương (ví dụ: 3 và 3.0), thì trường sẽ không thay đổi. 0, 0,0 và -0,0 đều bằng 0. Giá trị lớn nhất của giá trị được lưu trữ bằng 0 và giá trị nhập bằng 0 luôn là giá trị được lưu trữ. Giá trị lớn nhất của giá trị số x và NaN bất kỳ là NaN.

minimum

Value

Đặt trường thành giá trị nhỏ nhất của giá trị hiện tại và giá trị đã cho.

Đây phải là một số nguyên hoặc một giá trị kép. Nếu trường không phải là số nguyên hoặc giá trị kép, hoặc nếu trường chưa tồn tại, thì quy tắc chuyển đổi sẽ đặt trường đó thành giá trị nhập. Nếu áp dụng phép toán tối thiểu, trong đó trường và giá trị nhập vào là loại hỗn hợp (nghĩa là một là số nguyên và một là toán tử kép), thì trường đó sẽ nhận loại toán hạng nhỏ hơn. Nếu các toán hạng tương đương (ví dụ: 3 và 3.0), thì trường sẽ không thay đổi. 0, 0,0 và -0,0 đều bằng 0. Giá trị nhỏ nhất của một giá trị được lưu trữ bằng 0 và giá trị nhập vào bằng 0 luôn là giá trị được lưu trữ. Giá trị số nhỏ nhất của giá trị x và NaN bất kỳ là NaN.

append_missing_elements

ArrayValue

Thêm các phần tử đã cho theo thứ tự nếu các phần tử đó chưa có trong giá trị của trường hiện tại. Nếu trường không phải là một mảng hoặc nếu trường chưa tồn tại, thì trước tiên, trường đó sẽ được đặt thành mảng trống.

Số lượng tương đương thuộc các loại khác nhau (ví dụ: 3L và 3.0) được xem là bằng nhau khi kiểm tra xem có thiếu giá trị hay không. NaN bằng NaN và Null bằng Null. Nếu dữ liệu đầu vào chứa nhiều giá trị tương đương, thì chỉ giá trị đầu tiên được xem xét.

Phép biến đổi_tương ứng sẽ là giá trị rỗng.

remove_all_from_array

ArrayValue

Xoá tất cả phần tử đã cho khỏi mảng trong trường này. Nếu trường không phải là một mảng hoặc nếu trường chưa tồn tại thì trường đó sẽ được đặt thành mảng trống.

Số lượng tương đương của các loại khác nhau (ví dụ: 3L và 3.0) được xem là bằng nhau khi quyết định xem có nên xoá một phần tử hay không. NaN bằng NaN và Null bằng Null. Thao tác này sẽ xoá tất cả giá trị tương đương nếu có giá trị trùng lặp.

Phép biến đổi_tương ứng sẽ là giá trị rỗng.

ServerValue

Một giá trị do máy chủ tính toán.

Enum
SERVER_VALUE_UNSPECIFIED Không xác định. Không được sử dụng giá trị này.
REQUEST_TIME Thời gian máy chủ xử lý yêu cầu, với độ chính xác tính bằng mili giây. Nếu được sử dụng trên nhiều trường (cùng hoặc các tài liệu khác nhau) trong một giao dịch, tất cả các trường sẽ nhận cùng một dấu thời gian máy chủ.

ExecutionStats

Số liệu thống kê về quá trình thực thi của truy vấn.

Trường
results_returned

int64

Tổng số kết quả được trả về, bao gồm tài liệu, phép chiếu, kết quả tổng hợp, khoá.

execution_duration

Duration

Tổng thời gian thực thi truy vấn trong phần phụ trợ.

read_operations

int64

Tổng số tác vụ đọc có thể tính phí.

debug_stats

Struct

Gỡ lỗi thống kê từ quá trình thực thi truy vấn. Lưu ý rằng số liệu thống kê gỡ lỗi có thể thay đổi khi Firestore phát triển. It could include: { "indexes_entries_scanned": "1000", "documents_scanned": "20", "billing_details" : { "documents_billable": "20", "index_entries_billable": "1000", "min_query_cost": "0" } }

ExistenceFilter

Chuỗi đại diện của tất cả các tài liệu khớp với một mục tiêu nhất định.

Trường
target_id

int32

Mã mục tiêu mà bộ lọc này áp dụng.

count

int32

Tổng số tài liệu khớp với target_id.

Nếu khác với số lượng chứng từ trong khách hàng trùng khớp, khách hàng phải xác định theo cách thủ công những chứng từ nào không còn phù hợp với mục tiêu.

Ứng dụng khách có thể sử dụng bộ lọc Bloom unchanged_names để hỗ trợ quá trình xác định này bằng cách kiểm tra TẤT CẢ tên tài liệu với bộ lọc; nếu tên tài liệu KHÔNG có trong bộ lọc thì có nghĩa là tài liệu không còn khớp với mục tiêu.

unchanged_names

BloomFilter

Một bộ lọc bloom (Hoa Kỳ) mặc dù có tên như vậy nhưng vẫn chứa phương thức mã hoá byte UTF-8 cho tên tài nguyên của TẤT CẢ tài liệu khớp với target_id, ở dạng projects/{project_id}/databases/{database_id}/documents/{document_path}.

Bộ lọc kết hợp này có thể được bỏ qua theo quyết định của máy chủ, chẳng hạn như nếu cho rằng ứng dụng sẽ không sử dụng hoặc nếu bộ lọc này quá tốn kém khi tính toán hoặc truyền tải. Ứng dụng phải xử lý linh hoạt trường hợp không có trường này bằng cách quay lại logic được sử dụng trước khi trường này tồn tại; tức là thêm lại mục tiêu mà không có mã tiếp tục để tìm ra tài liệu nào trong bộ nhớ đệm của ứng dụng chưa đồng bộ hoá.

ExplainMetrics

Giải thích các chỉ số cho truy vấn.

Trường
plan_summary

PlanSummary

Thông tin về giai đoạn lập kế hoạch cho truy vấn.

execution_stats

ExecutionStats

Số liệu thống kê tổng hợp từ quá trình thực thi truy vấn. Chỉ hiển thị khi ExplainOptions.analyze được đặt thành true.

ExplainOptions

Giải thích các tuỳ chọn cho truy vấn.

Trường
analyze

bool

Không bắt buộc. Liệu có thực thi truy vấn này hay không.

Khi giá trị là sai (mặc định), truy vấn sẽ được lập kế hoạch và chỉ trả về các chỉ số từ các giai đoạn lập kế hoạch.

Khi giá trị là true, truy vấn sẽ được lên kế hoạch và thực thi, trả về kết quả truy vấn đầy đủ cùng với các chỉ số của cả giai đoạn lập kế hoạch và thực thi.

GetDocumentRequest

Yêu cầu đối với Firestore.GetDocument.

Trường
name

string

Bắt buộc. Tên tài nguyên của Tài liệu cần tải. Theo định dạng: projects/{project_id}/databases/{database_id}/documents/{document_path}.

mask

DocumentMask

Các trường cần trả về. Nếu không được đặt, hàm sẽ trả về tất cả các trường.

Nếu tài liệu có một trường không xuất hiện trong mặt nạ này, thì trường đó sẽ không được trả về trong phản hồi.

Trường hợp consistency_selector. Chế độ nhất quán cho giao dịch này. Nếu bạn không đặt chính sách này, thì chế độ mặc định sẽ là mức độ nhất quán cao. consistency_selector chỉ có thể là một trong những trạng thái sau:
transaction

bytes

Đọc tài liệu trong một giao dịch.

read_time

Timestamp

Đọc phiên bản của tài liệu tại một thời điểm nhất định.

Đây phải là dấu thời gian có độ chính xác tính bằng micrô giây trong vòng 1 giờ qua, hoặc nếu tính năng Khôi phục đúng thời điểm được bật, thì bạn có thể thêm dấu thời gian là toàn bộ phút trong 7 ngày qua.

ListCollectionIdsRequest

Yêu cầu đối với Firestore.ListCollectionIds.

Trường
parent

string

Bắt buộc. Tài liệu mẹ. Theo định dạng: projects/{project_id}/databases/{database_id}/documents/{document_path}. Ví dụ: projects/my-project/databases/my-database/documents/chatrooms/my-chatroom

page_size

int32

Số lượng kết quả tối đa cần trả về.

page_token

string

Mã thông báo trang. Phải là một giá trị từ ListCollectionIdsResponse.

Trường hợp consistency_selector. Chế độ nhất quán cho yêu cầu này. Nếu bạn không đặt chính sách này, thì chế độ mặc định sẽ là mức độ nhất quán cao. consistency_selector chỉ có thể là một trong những trạng thái sau:
read_time

Timestamp

Đọc tài liệu ở một thời điểm nhất định.

Đây phải là dấu thời gian có độ chính xác tính bằng micrô giây trong vòng 1 giờ qua, hoặc nếu tính năng Khôi phục đúng thời điểm được bật, thì bạn có thể thêm dấu thời gian là toàn bộ phút trong 7 ngày qua.

ListCollectionIdsResponse

Phản hồi của Firestore.ListCollectionIds.

Trường
collection_ids[]

string

Mã bộ sưu tập.

next_page_token

string

Mã thông báo trang có thể được dùng để tiếp tục danh sách.

ListDocumentsRequest

Yêu cầu đối với Firestore.ListDocuments.

Trường
parent

string

Bắt buộc. Tên tài nguyên gốc. Theo định dạng: projects/{project_id}/databases/{database_id}/documents hoặc projects/{project_id}/databases/{database_id}/documents/{document_path}.

Ví dụ: projects/my-project/databases/my-database/documents hoặc projects/my-project/databases/my-database/documents/chatrooms/my-chatroom

collection_id

string

Không bắt buộc. Mã bộ sưu tập (tương ứng với parent) trong danh sách.

Ví dụ: chatrooms hoặc messages.

Đây là yêu cầu không bắt buộc và nếu không được cung cấp, Firestore sẽ liệt kê tài liệu từ mọi bộ sưu tập theo parent được cung cấp.

page_size

int32

Không bắt buộc. Số lượng tài liệu tối đa cần trả về trong một câu trả lời.

Firestore có thể trả về ít hơn giá trị này.

page_token

string

Không bắt buộc. Mã thông báo trang, nhận được từ phản hồi ListDocuments trước đó.

Cung cấp URL này để truy xuất trang tiếp theo. Khi phân trang, tất cả các tham số khác (ngoại trừ page_size) phải khớp với các giá trị được đặt trong yêu cầu đã tạo mã thông báo trang.

order_by

string

Không bắt buộc. Thứ tự không bắt buộc của tài liệu cần trả lại.

Ví dụ: priority desc, __name__ desc.

Thao tác này phản ánh ORDER BY được dùng trong các truy vấn Firestore nhưng ở dạng biểu diễn dạng chuỗi. Khi không có dữ liệu, các tài liệu sẽ được sắp xếp dựa trên __name__ ASC.

mask

DocumentMask

Không bắt buộc. Các trường cần trả về. Nếu không được đặt, hàm sẽ trả về tất cả các trường.

Nếu tài liệu có một trường không xuất hiện trong mặt nạ này, thì trường đó sẽ không được trả về trong phản hồi.

show_missing

bool

Liệu danh sách có hiển thị các tài liệu bị thiếu hay không.

Tài liệu bị thiếu nếu không tồn tại, nhưng có các tài liệu phụ được lồng bên dưới tài liệu đó. Khi đúng, những tài liệu bị thiếu này sẽ được trả về bằng một khoá nhưng sẽ không có các trường, create_time hoặc update_time nào được đặt.

Yêu cầu có show_missing không được chỉ định where hoặc order_by.

Trường hợp consistency_selector. Chế độ nhất quán cho giao dịch này. Nếu bạn không đặt chính sách này, thì chế độ mặc định sẽ là mức độ nhất quán cao. consistency_selector chỉ có thể là một trong những trạng thái sau:
transaction

bytes

Thực hiện đọc như một phần của giao dịch đã hoạt động.

read_time

Timestamp

Thực hiện việc đọc tại thời điểm được cung cấp.

Đây phải là dấu thời gian có độ chính xác tính bằng micrô giây trong vòng 1 giờ qua, hoặc nếu tính năng Khôi phục đúng thời điểm được bật, thì bạn có thể thêm dấu thời gian là toàn bộ phút trong 7 ngày qua.

ListDocumentsResponse

Câu trả lời cho Firestore.ListDocuments.

Trường
documents[]

Document

Tài liệu được tìm thấy.

next_page_token

string

Mã thông báo để truy xuất trang tài liệu tiếp theo.

Nếu trường này bị bỏ qua, thì không có trang tiếp theo nào.

ListenRequest

Một yêu cầu cho Firestore.Listen

Trường
database

string

Bắt buộc. Tên cơ sở dữ liệu. Theo định dạng: projects/{project_id}/databases/{database_id}.

labels

map<string, string>

Các nhãn được liên kết với thay đổi về mục tiêu này.

Trường hợp target_change. Các thay đổi về mục tiêu được hỗ trợ. target_change chỉ có thể là một trong những trạng thái sau:
add_target

Target

Một mục tiêu để thêm vào luồng này.

remove_target

int32

Mã của mục tiêu cần xóa khỏi luồng này.

ListenResponse

Câu trả lời cho Firestore.Listen.

Trường
Trường hợp response_type. Câu trả lời được hỗ trợ. response_type chỉ có thể là một trong những trạng thái sau:
target_change

TargetChange

Các mục tiêu đã thay đổi.

document_change

DocumentChange

Document đã thay đổi.

document_delete

DocumentDelete

Đã xoá một Document.

document_remove

DocumentRemove

Document đã bị xoá khỏi một mục tiêu (vì không còn liên quan đến mục tiêu đó).

filter

ExistenceFilter

Bộ lọc để áp dụng cho tập hợp tài liệu đã trả về trước đó cho mục tiêu nhất định.

Được trả về khi tài liệu có thể đã bị xoá khỏi đích nhất định nhưng không xác định được tài liệu chính xác.

MapValue

Giá trị bản đồ.

Trường
fields

map<string, Value>

Các trường trên bản đồ.

Các khoá bản đồ đại diện cho tên trường. Tên trường khớp với biểu thức chính quy __.*__ đã được dành riêng. Tên trường dành riêng bị cấm, ngoại trừ một số ngữ cảnh được ghi nhận trong tài liệu. Các khoá bản đồ, được biểu thị dưới dạng UTF-8, không được vượt quá 1.500 byte và không được để trống.

PartitionQueryRequest

Yêu cầu đối với Firestore.PartitionQuery.

Trường
parent

string

Bắt buộc. Tên tài nguyên gốc. Theo định dạng: projects/{project_id}/databases/{database_id}/documents. Tên tài nguyên tài liệu không được hỗ trợ; chỉ có thể chỉ định tên tài nguyên cơ sở dữ liệu.

partition_count

int64

Số điểm phân vùng tối đa mong muốn. Các phân vùng có thể được trả về trên nhiều trang kết quả. Số phải là số dương. Số lượng phân vùng thực tế được trả về có thể ít hơn.

Ví dụ: bạn có thể đặt giá trị này thấp hơn 1 so với số lượng truy vấn song song sẽ chạy, hoặc trong khi chạy một công việc quy trình dữ liệu, ít hơn 1 so với số lượng trình thực thi hoặc thực thể điện toán có sẵn.

page_token

string

Giá trị next_page_token được trả về từ lệnh gọi trước đó đến PartitionQuery. Lệnh gọi này có thể được dùng để nhận một tập hợp kết quả bổ sung. Không có sự đảm bảo về thứ tự giữa các tập hợp kết quả. Do đó, việc sử dụng nhiều tập hợp kết quả sẽ yêu cầu phải hợp nhất các tập hợp kết quả khác nhau.

Ví dụ: hai lệnh gọi tiếp theo sử dụng page_token có thể trả về:

  • con trỏ B, con trỏ M, con trỏ Q
  • con trỏ A, con trỏ U, con trỏ W

Để có được tập hợp kết quả hoàn chỉnh theo thứ tự tương ứng với kết quả của truy vấn được cung cấp cho PartitionQuery, các tập hợp kết quả phải được hợp nhất: con trỏ A, con trỏ B, con trỏ M, con trỏ Q, con trỏ U, con trỏ W

page_size

int32

Số lượng phân vùng tối đa cần trả về trong lệnh gọi này, tuân theo partition_count.

Ví dụ: nếu partition_count = 10 và page_size = 8, lệnh gọi đầu tiên đến PartitionQuery sẽ trả về tối đa 8 phân vùng và một next_page_token nếu có nhiều kết quả hơn. Lệnh gọi thứ hai đến PartitionQuery sẽ trả về tối đa 2 phân vùng, để hoàn thành tổng số 10 phân vùng được chỉ định trong partition_count.

Trường hợp query_type. Truy vấn để phân vùng. query_type chỉ có thể là một trong những trạng thái sau:
structured_query

StructuredQuery

Cụm từ tìm kiếm có cấu trúc. Truy vấn phải chỉ định bộ sưu tập với tất cả các thành phần con cháu và được sắp xếp theo thứ tự tăng dần tên. Các bộ lọc khác, thứ tự theo thứ tự, giới hạn, độ lệch và con trỏ bắt đầu/kết thúc không được hỗ trợ.

Trường hợp consistency_selector. Chế độ nhất quán cho yêu cầu này. Nếu bạn không đặt chính sách này, thì chế độ mặc định sẽ là mức độ nhất quán cao. consistency_selector chỉ có thể là một trong những trạng thái sau:
read_time

Timestamp

Đọc tài liệu ở một thời điểm nhất định.

Đây phải là dấu thời gian có độ chính xác tính bằng micrô giây trong vòng 1 giờ qua, hoặc nếu tính năng Khôi phục đúng thời điểm được bật, thì bạn có thể thêm dấu thời gian là toàn bộ phút trong 7 ngày qua.

PartitionQueryResponse

Câu trả lời cho Firestore.PartitionQuery.

Trường
partitions[]

Cursor

Kết quả phân vùng. Mỗi phân vùng là một điểm phân tách có thể được RunQuery sử dụng làm điểm bắt đầu hoặc điểm kết thúc cho kết quả truy vấn. Các yêu cầu RunQuery phải được thực hiện bằng chính truy vấn được cung cấp cho yêu cầu PartitionQuery này. Các con trỏ phân vùng sẽ được sắp xếp theo cùng thứ tự như kết quả của truy vấn được cung cấp cho PartitionQuery.

Ví dụ: nếu yêu cầu PartitionQuery trả về con trỏ phân vùng A và B, việc chạy 3 truy vấn sau đây sẽ trả về toàn bộ tập hợp kết quả của truy vấn ban đầu:

  • truy vấn, kết thúc tại A
  • truy vấn, bắt đầu tại A, kết thúc_tại B
  • truy vấn, bắt_đầu_tại B

Kết quả trống có thể chỉ ra rằng truy vấn có quá ít kết quả để được phân vùng, hoặc truy vấn không được hỗ trợ để phân vùng.

next_page_token

string

Mã thông báo trang có thể được dùng để yêu cầu một nhóm kết quả bổ sung, tối đa là số do partition_count chỉ định trong yêu cầu PartitionQuery. Nếu để trống thì sẽ không có kết quả nào khác.

PlanSummary

Thông tin về giai đoạn lập kế hoạch cho truy vấn.

Trường
indexes_used[]

Struct

Chỉ mục được chọn cho truy vấn. For example: [ {"query_scope": "Collection", "properties": "(foo ASC, name ASC)"}, {"query_scope": "Collection", "properties": "(bar ASC, name ASC)"} ]

Điều kiện tiên quyết

Điều kiện tiên quyết trên tài liệu, dùng cho các phép toán có điều kiện.

Trường
Trường hợp condition_type. Loại điều kiện tiên quyết. condition_type chỉ có thể là một trong những trạng thái sau:
exists

bool

Khi đặt thành true, tài liệu đích phải tồn tại. Khi đặt thành false, tài liệu đích không được tồn tại.

update_time

Timestamp

Khi đặt giá trị, tài liệu mục tiêu phải tồn tại và được cập nhật lần gần đây nhất vào thời điểm đó. Dấu thời gian phải được căn chỉnh theo micrô giây.

RollbackRequest

Yêu cầu đối với Firestore.Rollback.

Trường
database

string

Bắt buộc. Tên cơ sở dữ liệu. Theo định dạng: projects/{project_id}/databases/{database_id}.

transaction

bytes

Bắt buộc. Giao dịch sẽ được khôi phục.

RunAggregationQueryRequest

Yêu cầu đối với Firestore.RunAggregationQuery.

Trường
parent

string

Bắt buộc. Tên tài nguyên gốc. Theo định dạng: projects/{project_id}/databases/{database_id}/documents hoặc projects/{project_id}/databases/{database_id}/documents/{document_path}. Ví dụ: projects/my-project/databases/my-database/documents hoặc projects/my-project/databases/my-database/documents/chatrooms/my-chatroom

explain_options

ExplainOptions

Không bắt buộc. Giải thích các tuỳ chọn cho truy vấn. Nếu được đặt, thống kê truy vấn bổ sung sẽ được trả về. Nếu không, chỉ có kết quả truy vấn được trả về.

Trường hợp query_type. Truy vấn cần chạy. query_type chỉ có thể là một trong những trạng thái sau:
structured_aggregation_query

StructuredAggregationQuery

Truy vấn tổng hợp.

Trường hợp consistency_selector. Chế độ nhất quán cho truy vấn sẽ mặc định là nhất quán cao. consistency_selector chỉ có thể là một trong những trạng thái sau:
transaction

bytes

Chạy quá trình tổng hợp trong một giao dịch đã hoạt động.

Giá trị ở đây là mã giao dịch không rõ ràng để thực thi truy vấn.

new_transaction

TransactionOptions

Bắt đầu một giao dịch mới trong truy vấn, được đặt mặc định là chỉ có thể đọc.

Mã giao dịch mới sẽ được trả về dưới dạng phản hồi đầu tiên trong luồng.

read_time

Timestamp

Thực thi truy vấn tại dấu thời gian nhất định.

Đây phải là dấu thời gian có độ chính xác tính bằng micrô giây trong vòng 1 giờ qua, hoặc nếu tính năng Khôi phục đúng thời điểm được bật, thì bạn có thể thêm dấu thời gian là toàn bộ phút trong 7 ngày qua.

RunAggregationQueryResponse

Câu trả lời cho Firestore.RunAggregationQuery.

Trường
result

AggregationResult

Một kết quả tổng hợp duy nhất.

Không hiển thị khi báo cáo tiến trình một phần.

transaction

bytes

Giao dịch được bắt đầu theo yêu cầu này.

Chỉ xuất hiện trong phản hồi đầu tiên khi người dùng yêu cầu bắt đầu một giao dịch mới.

read_time

Timestamp

Thời gian tính toán kết quả tổng hợp. Giá trị này luôn tăng đơn điệu; trong trường hợp này, AggregatResult trước trong luồng kết quả được đảm bảo là không thay đổi giữa read_time và này.

Nếu truy vấn không trả về kết quả nào, thì phản hồi có read_time và không có result nào sẽ được gửi và số liệu này thể hiện thời điểm chạy truy vấn.

explain_metrics

ExplainMetrics

Truy vấn giải thích các chỉ số. Mã này chỉ xuất hiện khi RunAggregationQueryRequest.explain_options được cung cấp và chỉ được gửi một lần cùng với phản hồi cuối cùng trong luồng.

RunQueryRequest

Yêu cầu đối với Firestore.RunQuery.

Trường
parent

string

Bắt buộc. Tên tài nguyên gốc. Theo định dạng: projects/{project_id}/databases/{database_id}/documents hoặc projects/{project_id}/databases/{database_id}/documents/{document_path}. Ví dụ: projects/my-project/databases/my-database/documents hoặc projects/my-project/databases/my-database/documents/chatrooms/my-chatroom

explain_options

ExplainOptions

Không bắt buộc. Giải thích các tuỳ chọn cho truy vấn. Nếu được đặt, thống kê truy vấn bổ sung sẽ được trả về. Nếu không, chỉ có kết quả truy vấn được trả về.

Trường hợp query_type. Truy vấn cần chạy. query_type chỉ có thể là một trong những trạng thái sau:
structured_query

StructuredQuery

Cụm từ tìm kiếm có cấu trúc.

Trường hợp consistency_selector. Chế độ nhất quán cho giao dịch này. Nếu bạn không đặt chính sách này, thì chế độ mặc định sẽ là mức độ nhất quán cao. consistency_selector chỉ có thể là một trong những trạng thái sau:
transaction

bytes

Chạy truy vấn trong một giao dịch đã hoạt động.

Giá trị ở đây là mã giao dịch không rõ ràng để thực thi truy vấn.

new_transaction

TransactionOptions

Bắt đầu một giao dịch mới và đọc tài liệu. Mặc định là giao dịch chỉ đọc. Mã giao dịch mới sẽ được trả về dưới dạng phản hồi đầu tiên trong luồng.

read_time

Timestamp

Đọc tài liệu ở một thời điểm nhất định.

Đây phải là dấu thời gian có độ chính xác tính bằng micrô giây trong vòng 1 giờ qua, hoặc nếu tính năng Khôi phục đúng thời điểm được bật, thì bạn có thể thêm dấu thời gian là toàn bộ phút trong 7 ngày qua.

RunQueryResponse

Câu trả lời cho Firestore.RunQuery.

Trường
transaction

bytes

Giao dịch được bắt đầu theo yêu cầu này. Chỉ có thể đặt trong phản hồi đầu tiên và chỉ khi RunQueryRequest.new_transaction được đặt trong yêu cầu. Nếu được đặt, hệ thống sẽ không đặt các trường khác trong phản hồi này.

document

Document

Kết quả truy vấn, không được đặt khi báo cáo tiến trình một phần.

read_time

Timestamp

Thời điểm đọc tài liệu. Điều này có thể tăng đơn điệu; trong trường hợp này, các tài liệu trước đó trong luồng kết quả được đảm bảo không có thay đổi giữa read_time và tài liệu này.

Nếu truy vấn không trả về kết quả nào, thì phản hồi có read_time và không có document nào sẽ được gửi và số liệu này thể hiện thời điểm chạy truy vấn.

skipped_results

int32

Số kết quả đã bị bỏ qua do chênh lệch giữa phản hồi gần đây nhất và phản hồi hiện tại.

explain_metrics

ExplainMetrics

Truy vấn giải thích các chỉ số. Mã này chỉ xuất hiện khi RunQueryRequest.explain_options được cung cấp và chỉ được gửi một lần cùng với phản hồi cuối cùng trong luồng.

Trường hợp continuation_selector. Chế độ tiếp tục cho truy vấn. Nếu có, thẻ này cho biết luồng phản hồi truy vấn hiện tại đã kết thúc. Bạn có thể đặt thuộc tính này khi có hoặc không có document, nhưng khi đặt thì sẽ không có kết quả nào khác được trả về. continuation_selector chỉ có thể là một trong những trạng thái sau:
done

bool

Nếu có, Firestore đã hoàn tất yêu cầu và sẽ không trả lại tài liệu nào nữa.

StructuredAggregationQuery

Truy vấn Firestore để chạy tổng hợp trên StructuredQuery.

Trường
aggregations[]

Aggregation

Không bắt buộc. Một loạt các phép tổng hợp để áp dụng cho các kết quả của structured_query.

Yêu cầu:

  • Tối thiểu một và tối đa là năm tổng hợp cho mỗi truy vấn.
Trường hợp query_type. Truy vấn cơ sở để tổng hợp. query_type chỉ có thể là một trong những trạng thái sau:
structured_query

StructuredQuery

Truy vấn có cấu trúc lồng nhau.

Tổng hợp

Xác định quá trình tổng hợp tạo ra một kết quả duy nhất.

Trường
alias

string

Không bắt buộc. Tên không bắt buộc của trường để lưu trữ kết quả tổng hợp.

Nếu không được cung cấp, Firestore sẽ chọn một tên mặc định theo định dạng field_<incremental_id++>. Ví dụ:

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 (
  ...
);

sẽ trở thành:

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 (
  ...
);

Yêu cầu:

  • Phải là duy nhất trên tất cả các bí danh tổng hợp.
  • Tuân thủ các giới hạn của document field name.
Trường hợp operator. Loại tổng hợp cần thực hiện, bắt buộc. operator chỉ có thể là một trong những trạng thái sau:
count

Count

Tổng hợp dữ liệu.

sum

Sum

Trang web tổng hợp.

avg

Avg

Trang web tổng hợp trung bình.

Trung bình

Trung bình của các giá trị trong trường được yêu cầu.

  • Hệ thống chỉ tổng hợp giá trị số. Tất cả các giá trị không phải số, bao gồm cả NULL, đều bị bỏ qua.

  • Nếu các giá trị tổng hợp chứa NaN, hàm trả về NaN. Toán học Infinity tuân theo tiêu chuẩn IEEE-754.

  • Nếu tập hợp giá trị tổng hợp trống, hàm sẽ trả về NULL.

  • Luôn trả về kết quả dưới dạng một đối tượng kép.

Trường
field

FieldReference

Trường cần tổng hợp.

Số lượt

Số lượng tài liệu phù hợp với truy vấn.

Hàm tổng hợp COUNT(*) hoạt động trên toàn bộ tài liệu nên không yêu cầu tham chiếu trường.

Trường
up_to

Int64Value

Không bắt buộc. Giới hạn tùy chọn về số lượng tài liệu tối đa cần đếm.

Đây là một cách để đặt giới hạn trên cho số lượng tài liệu cần quét, giúp hạn chế độ trễ và chi phí.

Chưa xác định được hiểu là không có ràng buộc.

Ví dụ cấp cao:

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

Yêu cầu:

  • Phải lớn hơn 0 khi hiển thị.

Tổng

Tổng các giá trị của trường được yêu cầu.

  • Hệ thống chỉ tổng hợp giá trị số. Tất cả các giá trị không phải số, bao gồm cả NULL, đều bị bỏ qua.

  • Nếu các giá trị tổng hợp chứa NaN, hàm trả về NaN. Toán học Infinity tuân theo tiêu chuẩn IEEE-754.

  • Nếu tập hợp giá trị tổng hợp trống, hàm sẽ trả về 0.

  • Trả về số nguyên 64 bit nếu tất cả các số tổng hợp là số nguyên và kết quả tổng không tràn. Nếu không, kết quả sẽ được trả về dưới dạng kép. Lưu ý rằng ngay cả khi tất cả các giá trị tổng hợp là số nguyên, kết quả vẫn được trả về dưới dạng số nguyên kép nếu không thể nằm vừa trong số nguyên 64 bit đã ký. Khi điều này xảy ra, giá trị trả về sẽ mất độ chính xác.

  • Khi xảy ra tình trạng thiếu hụt, tổng hợp dấu phẩy động là không xác định. Điều này có nghĩa là việc chạy cùng một truy vấn nhiều lần mà không có bất kỳ thay đổi nào đối với các giá trị cơ bản có thể tạo ra kết quả hơi khác nhau mỗi lần. Trong những trường hợp đó, các giá trị phải được lưu trữ dưới dạng số nguyên thay vì số thực.

Trường
field

FieldReference

Trường cần tổng hợp.

StructuredQuery

Truy vấn trên Firestore.

Các giai đoạn truy vấn được thực thi theo thứ tự sau: 1. từ 2. trong đó 3. chọn 4. order_by + start_at + end_at 5. offset 6. limit

Trường
select

Projection

Tập hợp con không bắt buộc của các trường cần trả về.

Mã này đóng vai trò là DocumentMask trên các tài liệu được trả về từ truy vấn. Khi không được đặt, giả định rằng phương thức gọi muốn trả về tất cả các trường.

from[]

CollectionSelector

Các tập hợp cần truy vấn.

where

Filter

Bộ lọc muốn áp dụng.

order_by[]

Order

Thứ tự áp dụng cho các kết quả truy vấn.

Firestore cho phép người gọi cung cấp dịch vụ đặt hàng đầy đủ, đặt hàng một phần hoặc không đặt hàng. Trong mọi trường hợp, Firestore đảm bảo thứ tự ổn định thông qua các quy tắc sau:

  • order_by là bắt buộc để tham chiếu tất cả các trường dùng với bộ lọc bất đẳng thức.
  • Tất cả các trường bắt buộc phải có trong order_by nhưng chưa xuất hiện đều được thêm vào theo thứ tự từ vựng của tên trường.
  • Nếu đơn đặt hàng trên __name__ không được chỉ định, thì đơn đặt hàng sẽ được thêm vào theo mặc định.

Các trường được nối với cùng một hướng sắp xếp với thứ tự gần đây nhất được chỉ định hoặc "ASCENDING" nếu không có thứ tự nào được chỉ định. Ví dụ:

  • ORDER BY a trở thành ORDER BY a ASC, __name__ ASC
  • ORDER BY a DESC trở thành ORDER BY a DESC, __name__ DESC
  • WHERE a > 1 trở thành WHERE a > 1 ORDER BY a ASC, __name__ ASC
  • WHERE __name__ > ... AND a > 1 trở thành WHERE __name__ > ... AND a > 1 ORDER BY a ASC, __name__ ASC
start_at

Cursor

Tiền tố tiềm năng của một vị trí trong kết quả được đặt để bắt đầu truy vấn.

Thứ tự của tập hợp kết quả dựa trên mệnh đề ORDER BY của truy vấn ban đầu.

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

Kết quả của truy vấn này được sắp xếp theo (b ASC, __name__ ASC).

Con trỏ có thể tham chiếu đến toàn bộ thứ tự hoặc một tiền tố của vị trí, mặc dù vị trí đó không thể tham chiếu đến nhiều trường hơn trường có trong ORDER BY được cung cấp.

Tiếp tục ví dụ trên, việc đính kèm các con trỏ bắt đầu sau đây sẽ có tác động khác nhau:

  • START BEFORE (2, /k/123): bắt đầu truy vấn ngay trước a = 1 AND b > 2 AND __name__ > /k/123.
  • START AFTER (10): bắt đầu truy vấn ngay sau a = 1 AND b > 10.

Không giống như OFFSET yêu cầu quét qua N kết quả đầu tiên để bỏ qua, con trỏ bắt đầu cho phép truy vấn bắt đầu tại vị trí logic. Vị trí này không bắt buộc phải khớp với kết quả thực tế, vị trí này sẽ quét tiến từ vị trí này để tìm tài liệu tiếp theo.

Yêu cầu:

  • Số lượng giá trị không được lớn hơn số lượng trường được chỉ định trong mệnh đề ORDER BY.
end_at

Cursor

Tiền tố tiềm năng của một vị trí trong kết quả được đặt để kết thúc truy vấn tại.

Hàm này tương tự như START_AT nhưng kiểm soát vị trí kết thúc thay vì vị trí bắt đầu.

Yêu cầu:

  • Số lượng giá trị không được lớn hơn số lượng trường được chỉ định trong mệnh đề ORDER BY.
offset

int32

Số tài liệu cần bỏ qua trước khi trả về kết quả đầu tiên.

Điều này áp dụng sau các điều kiện ràng buộc do WHERE, START ATEND AT chỉ định nhưng trước mệnh đề LIMIT.

Yêu cầu:

  • Giá trị phải lớn hơn hoặc bằng 0 nếu được chỉ định.
limit

Int32Value

Số lượng kết quả tối đa cần trả về.

Áp dụng sau tất cả các quy tắc ràng buộc khác.

Yêu cầu:

  • Giá trị phải lớn hơn hoặc bằng 0 nếu được chỉ định.
find_nearest

FindNearest

Không bắt buộc. Tìm kiếm hàng xóm gần nhất tiềm năng.

Áp dụng sau tất cả các bộ lọc và thứ tự khác.

Tìm các vectơ nhúng gần nhất với vectơ truy vấn đã cho.

CollectionSelector

Lựa chọn một bộ sưu tập, chẳng hạn như messages as m1.

Trường
collection_id

string

Mã bộ sưu tập. Khi đặt, chỉ chọn các bộ sưu tập có mã nhận dạng này.

all_descendants

bool

Khi giá trị là sai, chỉ chọn các tập hợp là phần tử con ngay lập tức của parent được chỉ định trong RunQueryRequest chứa. Khi đúng, hãy chọn tất cả các tập hợp con cháu.

CompositeFilter

Bộ lọc hợp nhất nhiều bộ lọc khác bằng cách sử dụng toán tử nhất định.

Trường
op

Operator

Toán tử để kết hợp nhiều bộ lọc.

filters[]

Filter

Danh sách bộ lọc cần kết hợp.

Yêu cầu:

  • Có ít nhất một bộ lọc.

Đơn vị tổ chức

Toán tử bộ lọc tổng hợp.

Enum
OPERATOR_UNSPECIFIED Không xác định. Không được sử dụng giá trị này.
AND Giấy tờ cần phải đáp ứng tất cả các bộ lọc kết hợp.
OR Giấy tờ cần đáp ứng ít nhất một trong các bộ lọc kết hợp.

Hướng

Hướng sắp xếp.

Enum
DIRECTION_UNSPECIFIED Không xác định.
ASCENDING Tăng dần.
DESCENDING Giảm dần.

FieldFilter

Bộ lọc về một trường cụ thể.

Trường
field

FieldReference

Trường cần lọc theo.

op

Operator

Toán tử cần lọc.

value

Value

Giá trị cần so sánh.

Đơn vị tổ chức

Toán tử lọc trường.

Enum
OPERATOR_UNSPECIFIED Không xác định. Không được sử dụng giá trị này.
LESS_THAN

field đã cho nhỏ hơn value đã cho.

Yêu cầu:

  • field đó là người đứng đầu trong order_by.
LESS_THAN_OR_EQUAL

field đã cho nhỏ hơn hoặc bằng value đã cho.

Yêu cầu:

  • field đó là người đứng đầu trong order_by.
GREATER_THAN

field đã cho lớn hơn value đã cho.

Yêu cầu:

  • field đó là người đứng đầu trong order_by.
GREATER_THAN_OR_EQUAL

field đã cho lớn hơn hoặc bằng value đã cho.

Yêu cầu:

  • field đó là người đứng đầu trong order_by.
EQUAL field đã cho sẽ bằng value đã cho.
NOT_EQUAL

field đã cho không bằng với value đã cho.

Yêu cầu:

  • Không có NOT_EQUAL, NOT_IN, IS_NOT_NULL hoặc IS_NOT_NAN nào khác.
  • field đó đứng đầu trong order_by.
ARRAY_CONTAINS field đã cho là một mảng chứa value đã cho.
IN

field đã cho bằng ít nhất một giá trị trong mảng đã cho.

Yêu cầu:

  • value đó là một ArrayValue không trống và phải tuân theo giới hạn phân cách.
  • Không có bộ lọc NOT_IN nào trong cùng một truy vấn.
ARRAY_CONTAINS_ANY

field đã cho là một mảng chứa bất kỳ giá trị nào trong mảng đã cho.

Yêu cầu:

  • value đó là một ArrayValue không trống và phải tuân theo giới hạn phân cách.
  • Không có bộ lọc ARRAY_CONTAINS_ANY nào khác trong cùng một phân biệt.
  • Không có bộ lọc NOT_IN nào trong cùng một truy vấn.
NOT_IN

Giá trị của field không nằm trong mảng đã cho.

Yêu cầu:

  • value đó là một ArrayValue không trống có tối đa 10 giá trị.
  • Không có OR, IN, ARRAY_CONTAINS_ANY, NOT_IN, NOT_EQUAL, IS_NOT_NULL hoặc IS_NOT_NAN nào khác.
  • field đó đứng đầu trong order_by.

FieldReference

Tham chiếu đến một trường trong tài liệu, ví dụ: stats.operations.

Trường
field_path

string

Tham chiếu đến một trường trong tài liệu.

Yêu cầu:

  • PHẢI là một chuỗi phân đoạn được phân tách bằng dấu chấm (.), trong đó mỗi phân đoạn tuân thủ các giới hạn của document field name.

Lọc

Bộ lọc.

Trường
Trường hợp filter_type. Loại bộ lọc. filter_type chỉ có thể là một trong những trạng thái sau:
composite_filter

CompositeFilter

Bộ lọc tổng hợp.

field_filter

FieldFilter

Bộ lọc trên một trường tài liệu.

unary_filter

UnaryFilter

Bộ lọc nhận đúng một đối số.

FindNearest

Cấu hình tìm kiếm của láng giềng gần nhất.

Trường
vector_field

FieldReference

Bắt buộc. Một trường vectơ được lập chỉ mục để tìm kiếm. Chỉ những tài liệu chứa vectơ có kích thước phù hợp với query_vectơ mới có thể được trả về.

query_vector

Value

Bắt buộc. Vectơ truy vấn mà chúng ta đang tìm kiếm. Phải là một vectơ không quá 2048 chiều.

distance_measure

DistanceMeasure

Bắt buộc. Bắt buộc phải đo khoảng cách để sử dụng.

limit

Int32Value

Bắt buộc. Số hàng xóm gần nhất cần trả về. Phải là số nguyên dương không quá 1000.

DistanceMeasure

Số đo khoảng cách cần sử dụng khi so sánh các vectơ.

Enum
DISTANCE_MEASURE_UNSPECIFIED Không nên đặt.
EUCLIDEAN Đo khoảng cách EUCLIDEAN giữa các vectơ. Xem Euclidean để tìm hiểu thêm
COSINE So sánh vectơ dựa trên góc giữa chúng, cho phép bạn đo độ tương đồng không dựa trên độ lớn vectơ. Bạn nên sử dụng DOT_PRODUCT với vectơ chuẩn hoá đơn vị thay vì khoảng cách cosINE, tương đương về mặt toán học với hiệu suất tốt hơn. Xem nội dung Sự tương đồng về Cosine để tìm hiểu thêm.
DOT_PRODUCT Tương tự như cosin nhưng bị ảnh hưởng bởi độ lớn của vectơ. Xem Sản phẩm Dot để tìm hiểu thêm.

Đặt

Đơn đặt hàng trên một trường.

Trường
field

FieldReference

Trường để sắp xếp theo.

direction

Direction

Hướng dẫn đặt hàng. Giá trị mặc định là ASCENDING.

Dự kiến

Phép chiếu các trường cần trả về của tài liệu.

Trường
fields[]

FieldReference

Các trường cần trả về.

Nếu trống, tất cả trường sẽ được trả về. Để chỉ trả về tên của tài liệu, hãy sử dụng ['__name__'].

UnaryFilter

Bộ lọc có một toán hạng duy nhất.

Trường
op

Operator

Toán tử đơn nguyên sẽ áp dụng.

Trường hợp operand_type. Đối số cho bộ lọc. operand_type chỉ có thể là một trong những trạng thái sau:
field

FieldReference

Trường sẽ áp dụng toán tử.

Đơn vị tổ chức

Toán tử đơn phân.

Enum
OPERATOR_UNSPECIFIED Không xác định. Không được sử dụng giá trị này.
IS_NAN field đã cho sẽ bằng NaN.
IS_NULL field đã cho sẽ bằng NULL.
IS_NOT_NAN

field đã cho không bằng NaN.

Yêu cầu:

  • Không có NOT_EQUAL, NOT_IN, IS_NOT_NULL hoặc IS_NOT_NAN nào khác.
  • field đó đứng đầu trong order_by.
IS_NOT_NULL

field đã cho không bằng NULL.

Yêu cầu:

  • Một NOT_EQUAL, NOT_IN, IS_NOT_NULL hoặc IS_NOT_NAN.
  • field đó đứng đầu trong order_by.

Mục tiêu

Thông số kỹ thuật của một bộ tài liệu để nghe.

Trường
target_id

int32

Mã mục tiêu xác định mục tiêu trên luồng. Phải là một số dương và khác 0.

Nếu target_id là 0 (hoặc chưa chỉ định), máy chủ sẽ chỉ định một mã nhận dạng cho mục tiêu này và trả về mã nhận dạng đó trong sự kiện TargetChange::ADD. Sau khi bạn thêm một mục tiêu có target_id=0, tất cả mục tiêu tiếp theo cũng phải có target_id=0. Nếu yêu cầu AddTargettarget_id != 0 được gửi đến máy chủ sau khi thêm một mục tiêu có target_id=0, thì máy chủ sẽ ngay lập tức gửi phản hồi kèm theo sự kiện TargetChange::Remove.

Xin lưu ý rằng nếu ứng dụng gửi nhiều yêu cầu AddTarget mà không có mã nhận dạng, thì thứ tự của các mã nhận dạng được trả về trong TargetChage.target_ids là không xác định. Do đó, ứng dụng nên cung cấp mã mục tiêu thay vì dựa vào máy chủ để chỉ định mã đó.

Nếu target_id khác 0 thì không được có mục tiêu đang hoạt động nào có cùng mã trên luồng này.

once

bool

Liệu mục tiêu phải được xoá khi mục tiêu đó đã được cập nhật và nhất quán.

expected_count

Int32Value

Số tài liệu khớp với truy vấn gần đây nhất tại mã thông báo tiếp tục hoặc thời gian đọc.

Giá trị này chỉ phù hợp khi resume_type được cung cấp. Giá trị này đang có mặt và lớn hơn 0 cho biết ứng dụng muốn đưa ExistenceFilter.unchanged_names vào phản hồi.

Trường hợp target_type. Loại mục tiêu để nghe. target_type chỉ có thể là một trong những trạng thái sau:
query

QueryTarget

Mục tiêu được xác định bởi truy vấn.

documents

DocumentsTarget

Mục tiêu được xác định bởi một nhóm tên tài liệu.

Trường hợp resume_type. Thời điểm bắt đầu nghe.

Nếu được chỉ định, chỉ những Tài liệu trùng khớp đã được cập nhật SAU resume_token hoặc read_time mới được trả về. Nếu không, tất cả các Tài liệu trùng khớp sẽ được trả về trước những thay đổi tiếp theo. resume_type chỉ có thể là một trong những trạng thái sau:

resume_token

bytes

Mã thông báo tiếp tục từ TargetChange trước đó cho cùng một mục tiêu.

Việc sử dụng mã thông báo tiếp tục với một mục tiêu khác không được hỗ trợ và có thể không thành công.

read_time

Timestamp

Bắt đầu nghe sau một read_time cụ thể.

Khách hàng phải biết trạng thái của các chứng từ trùng khớp tại thời điểm này.

DocumentsTarget

Mục tiêu được xác định bởi một bộ tên tài liệu.

Trường
documents[]

string

Tên của tài liệu cần truy xuất. Theo định dạng: projects/{project_id}/databases/{database_id}/documents/{document_path}. Yêu cầu sẽ không thành công nếu có bất kỳ tài liệu nào không phải là tài nguyên con của database đã cho. Tên trùng lặp sẽ bị loại bỏ.

QueryTarget

Mục tiêu được xác định bởi truy vấn.

Trường
parent

string

Tên tài nguyên gốc. Theo định dạng: projects/{project_id}/databases/{database_id}/documents hoặc projects/{project_id}/databases/{database_id}/documents/{document_path}. Ví dụ: projects/my-project/databases/my-database/documents hoặc projects/my-project/databases/my-database/documents/chatrooms/my-chatroom

Trường hợp query_type. Truy vấn cần chạy. query_type chỉ có thể là một trong những trạng thái sau:
structured_query

StructuredQuery

Cụm từ tìm kiếm có cấu trúc.

TargetChange

Các mục tiêu đang được theo dõi đã thay đổi.

Trường
target_change_type

TargetChangeType

Loại thay đổi đã xảy ra.

target_ids[]

int32

Mã mục tiêu của các mục tiêu đã thay đổi.

Nếu trống, thay đổi sẽ áp dụng cho tất cả mục tiêu.

Thứ tự của các mã mục tiêu không được xác định.

cause

Status

Lỗi đã dẫn đến thay đổi này, nếu có.

resume_token

bytes

Một mã thông báo có thể dùng để tiếp tục truyền trực tuyến cho target_ids đã cho hoặc tất cả mục tiêu nếu target_ids trống.

Không đặt ra cho mọi thay đổi về mục tiêu.

read_time

Timestamp

read_time nhất quán cho target_ids đã cho (bị bỏ qua khi target_ids không có ảnh chụp nhanh nhất quán).

Luồng đảm bảo sẽ gửi read_timetarget_ids trống bất cứ khi nào toàn bộ luồng đạt đến ảnh chụp nhanh nhất quán mới. Thông báo THÊM, HIỆN TẠI và Reset được đảm bảo sẽ dẫn đến một ảnh chụp nhanh nhất quán mới (trong khi các thông báo NO_CHANGE và REMOVE thì không).

Đối với một luồng nhất định, read_time được đảm bảo sẽ tăng đơn điệu.

TargetChangeType

Loại thay đổi.

Enum
NO_CHANGE Không có thay đổi nào xảy ra. Chỉ dùng để gửi một resume_token đã cập nhật.
ADD Đã thêm các mục tiêu.
REMOVE Các mục tiêu đã bị xoá.
CURRENT

Các mục tiêu phản ánh tất cả những thay đổi đã cam kết trước khi mục tiêu được thêm vào luồng.

Mã này sẽ được gửi sau hoặc cùng với read_time lớn hơn hoặc bằng thời điểm thêm mục tiêu.

Người nghe có thể chờ thay đổi này nếu muốn có ngữ nghĩa đọc sau khi ghi.

RESET

Các mục tiêu đã được đặt lại và trạng thái ban đầu mới cho các mục tiêu sẽ được trả về trong các thay đổi tiếp theo.

Sau khi hoàn tất trạng thái ban đầu, CURRENT sẽ được trả về ngay cả khi trước đó mục tiêu đã được chỉ định là CURRENT.

TransactionOptions

Các lựa chọn để tạo một giao dịch mới.

Trường
Trường hợp mode. Phương thức giao dịch. mode chỉ có thể là một trong những trạng thái sau:
read_only

ReadOnly

Bạn chỉ có thể sử dụng giao dịch này cho các thao tác đọc.

read_write

ReadWrite

Giao dịch này có thể được sử dụng cho cả thao tác đọc và ghi.

ReadOnly

Các tùy chọn cho một giao dịch chỉ có thể dùng để đọc tài liệu.

Trường
Trường hợp consistency_selector. Chế độ nhất quán cho giao dịch này. Nếu bạn không đặt chính sách này, thì chế độ mặc định sẽ là mức độ nhất quán cao. consistency_selector chỉ có thể là một trong những trạng thái sau:
read_time

Timestamp

Đọc tài liệu tại một thời điểm nhất định.

Đây phải là dấu thời gian có độ chính xác tính bằng micrô giây trong vòng 1 giờ qua, hoặc nếu tính năng Khôi phục đúng thời điểm được bật, thì bạn có thể thêm dấu thời gian là toàn bộ phút trong 7 ngày qua.

ReadWrite

Các tuỳ chọn cho một giao dịch có thể dùng để đọc và ghi tài liệu.

Firestore không cho phép yêu cầu xác thực của bên thứ ba để tạo giao dịch đọc-ghi.

Trường
retry_transaction

bytes

Một giao dịch không bắt buộc để thử lại.

UpdateDocumentRequest

Yêu cầu đối với Firestore.UpdateDocument.

Trường
document

Document

Bắt buộc. Tài liệu đã cập nhật. Tạo tài liệu nếu chưa có.

update_mask

DocumentMask

Các trường cần cập nhật. Không có đường dẫn trường nào trong mặt nạ có thể chứa tên dành riêng.

Nếu tài liệu tồn tại trên máy chủ và có các trường không được tham chiếu trong mặt nạ, thì các trường đó sẽ không thay đổi. Các trường được tham chiếu trong mặt nạ nhưng không xuất hiện trong tài liệu nhập sẽ bị xoá khỏi tài liệu trên máy chủ.

mask

DocumentMask

Các trường cần trả về. Nếu không được đặt, hàm sẽ trả về tất cả các trường.

Nếu tài liệu có một trường không xuất hiện trong mặt nạ này, thì trường đó sẽ không được trả về trong phản hồi.

current_document

Precondition

Điều kiện tiên quyết (không bắt buộc) trên tài liệu. Yêu cầu sẽ không thành công nếu bạn đặt và không đáp ứng yêu cầu này trong tài liệu đích.

Giá trị

Một thông báo có thể chứa bất kỳ loại giá trị được hỗ trợ nào.

Trường
Trường hợp value_type. Phải có một bộ giá trị. value_type chỉ có thể là một trong những trạng thái sau:
null_value

NullValue

Giá trị rỗng.

boolean_value

bool

Giá trị boolean.

integer_value

int64

Một giá trị số nguyên.

double_value

double

Giá trị kép.

timestamp_value

Timestamp

Giá trị dấu thời gian.

Chỉ chính xác đến micrô giây. Khi được lưu trữ, mọi độ chính xác bổ sung sẽ được làm tròn xuống.

string_value

string

Giá trị chuỗi.

Chuỗi, được biểu thị dưới dạng UTF-8, không được vượt quá 1 MiB – 89 byte. Chỉ 1.500 byte đầu tiên của đại diện UTF-8 được xem xét bởi các truy vấn.

bytes_value

bytes

Một giá trị byte.

Không được vượt quá 1 MiB – 89 byte. Truy vấn chỉ xem xét 1.500 byte đầu tiên.

reference_value

string

Tham chiếu đến một tài liệu. Ví dụ: projects/{project_id}/databases/{database_id}/documents/{document_path}.

geo_point_value

LatLng

Một giá trị điểm địa lý đại diện cho một điểm trên bề mặt Trái Đất.

array_value

ArrayValue

Giá trị mảng.

Không thể trực tiếp chứa một giá trị mảng khác, mặc dù có thể chứa một bản đồ chứa một mảng khác.

map_value

MapValue

Giá trị bản đồ.

Viết

Viết trên tài liệu.

Trường
update_mask

DocumentMask

Các trường cần cập nhật trong lần ghi này.

Bạn chỉ có thể đặt trường này khi thao tác là update. Nếu bạn không đặt mặt nạ cho update và tài liệu tồn tại, thì mọi dữ liệu hiện có sẽ bị ghi đè. Nếu bạn đặt mặt nạ và tài liệu trên máy chủ có các trường không được mặt nạ che phủ, thì các trường đó sẽ không thay đổi. Các trường được tham chiếu trong mặt nạ nhưng không xuất hiện trong tài liệu nhập sẽ bị xoá khỏi tài liệu trên máy chủ. Các đường dẫn trường trong mặt nạ này không được chứa tên trường dành riêng.

update_transforms[]

FieldTransform

Các phép biến đổi sẽ thực hiện sau khi cập nhật.

Bạn chỉ có thể đặt trường này khi thao tác là update. Nếu có, lượt ghi này tương đương với việc thực hiện updatetransform cho cùng một tài liệu theo thứ tự nguyên tử.

current_document

Precondition

Điều kiện tiên quyết (không bắt buộc) trên tài liệu.

Quá trình ghi sẽ không thành công nếu giá trị này được đặt và không được tài liệu đích đáp ứng.

Trường hợp operation. Toán tử cần thực thi. operation chỉ có thể là một trong những trạng thái sau:
update

Document

Một tài liệu cần viết.

delete

string

Tên tài liệu cần xoá. Theo định dạng: projects/{project_id}/databases/{database_id}/documents/{document_path}.

transform

DocumentTransform

Áp dụng phép biến đổi cho tài liệu.

WriteRequest

Yêu cầu đối với Firestore.Write.

Yêu cầu đầu tiên sẽ tạo một luồng hoặc tiếp tục luồng hiện có từ mã thông báo.

Khi tạo một luồng mới, máy chủ sẽ phản hồi bằng một phản hồi chỉ chứa mã nhận dạng và mã thông báo để dùng trong yêu cầu tiếp theo.

Khi tiếp tục một luồng, trước tiên máy chủ sẽ truyền trực tuyến mọi phản hồi muộn hơn mã thông báo đã cho, sau đó là phản hồi chỉ chứa mã thông báo cập nhật để dùng trong yêu cầu tiếp theo.

Trường
database

string

Bắt buộc. Tên cơ sở dữ liệu. Theo định dạng: projects/{project_id}/databases/{database_id}. Bạn chỉ cần làm như vậy trong tin nhắn đầu tiên.

stream_id

string

Mã của luồng ghi cần tiếp tục. Bạn chỉ có thể thiết lập tính năng này trong tin nhắn đầu tiên. Khi để trống, một luồng ghi mới sẽ được tạo.

writes[]

Write

Ghi để áp dụng.

Luôn được thực thi tỉ mỉ và theo thứ tự. Phải để trống trường này trong yêu cầu đầu tiên. Phần này có thể trống trong yêu cầu cuối cùng. Không được để trống thuộc tính này trong tất cả các yêu cầu khác.

stream_token

bytes

Mã thông báo luồng đã được máy chủ gửi trước đó.

Ứng dụng phải đặt trường này thành mã thông báo từ WriteResponse gần đây nhất mà ứng dụng nhận được. Việc này xác nhận rằng máy khách đã nhận được phản hồi cho mã thông báo này. Sau khi gửi mã thông báo này, các mã thông báo trước đó có thể không được sử dụng nữa.

Máy chủ có thể đóng luồng nếu có quá nhiều phản hồi chưa được xác nhận.

Không đặt trường này khi tạo sự kiện phát trực tiếp mới. Để tiếp tục truyền trực tuyến tại một thời điểm cụ thể, hãy đặt trường này và trường stream_id.

Không đặt trường này khi tạo sự kiện phát trực tiếp mới.

labels

map<string, string>

Các nhãn được liên kết với yêu cầu ghi này.

WriteResponse

Câu trả lời cho Firestore.Write.

Trường
stream_id

string

Mã của luồng. Chỉ đặt ở tin nhắn đầu tiên, khi có sự kiện phát trực tiếp mới.

stream_token

bytes

Một mã thông báo đại diện cho vị trí của phản hồi này trong luồng. Ứng dụng khách có thể sử dụng quyền này để tiếp tục truyền trực tuyến vào lúc này.

Trường này luôn được đặt.

write_results[]

WriteResult

Kết quả của việc áp dụng các lượt ghi.

Kết quả ghi thứ i này tương ứng với lượt ghi thứ i trong yêu cầu.

commit_time

Timestamp

Thời gian diễn ra cam kết. Bất kỳ lượt đọc nào có read_time bằng hoặc lớn hơn đều đảm bảo thấy được tác động của việc ghi.

WriteResult

Kết quả của việc ghi.

Trường
update_time

Timestamp

Thời điểm cập nhật tài liệu gần đây nhất sau khi áp dụng lệnh ghi. Không được đặt sau delete.

Nếu việc ghi không thực sự thay đổi tài liệu, thì đây sẽ là update_time trước đó.

transform_results[]

Value

Kết quả của việc áp dụng từng DocumentTransform.FieldTransform theo cùng một thứ tự.