Package google.firestore.v1

इंडेक्स

Firestore

Cloud Firestore सेवा.

Cloud Firestore एक तेज़, पूरी तरह से मैनेज किया गया, सर्वरलेस, क्लाउड-नेटिव NoSQL दस्तावेज़ डेटाबेस है. यह दुनिया भर में आपके मोबाइल, वेब, और IoT ऐप्लिकेशन के लिए डेटा को स्टोर करने, सिंक करने, और क्वेरी करने की सुविधा देता है. इसकी क्लाइंट लाइब्रेरी लाइव सिंक करने और ऑफ़लाइन सहायता उपलब्ध कराती है. वहीं, इसकी सुरक्षा सुविधाओं और Firebase और Google Cloud Platform के साथ इंटिग्रेशन से, बिना सर्वर वाले ऐप्लिकेशन बनाने में तेज़ी आती है.

बैचगेट दस्तावेज़

rpc BatchGetDocuments(BatchGetDocumentsRequest) returns (BatchGetDocumentsResponse)

एक से ज़्यादा दस्तावेज़ मिलते हैं.

इस बात की कोई गारंटी नहीं है कि इस तरीके से लौटाए गए दस्तावेज़ों को उसी क्रम में वापस किया जाएगा जिस क्रम में उन्हें मांगा गया था.

अनुमति के दायरे

इनमें से किसी एक OAuth स्कोप की ज़रूरत होती है:

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

ज़्यादा जानकारी के लिए, पुष्टि करने से जुड़ी खास जानकारी देखें.

बैचराइट

rpc BatchWrite(BatchWriteRequest) returns (BatchWriteResponse)

लेखन संक्रियाओं का एक बैच लागू करता है.

BatchWrite वाला तरीका, लिखने के ऑपरेशन को अपने-आप लागू नहीं करता और उसे बिना क्रम के लागू कर सकता है. इस तरीके में, हर दस्तावेज़ में एक से ज़्यादा लिखने की अनुमति नहीं है. हर लेखन अलग-अलग सफल या फ़ेल होता है. हर बार सेव किया गया मैसेज सफल होने की स्थिति जानने के लिए, BatchWriteResponse पर जाएं.

अगर आपको लिखने के अपने तरीके से लागू किए गए सेट की ज़रूरत है, तो इसके बजाय Commit का इस्तेमाल करें.

अनुमति के दायरे

इनमें से किसी एक OAuth स्कोप की ज़रूरत होती है:

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

ज़्यादा जानकारी के लिए, पुष्टि करने से जुड़ी खास जानकारी देखें.

लेन-देन शुरू करें

rpc BeginTransaction(BeginTransactionRequest) returns (BeginTransactionResponse)

नया लेन-देन शुरू करता है.

अनुमति के दायरे

इनमें से किसी एक OAuth स्कोप की ज़रूरत होती है:

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

ज़्यादा जानकारी के लिए, पुष्टि करने से जुड़ी खास जानकारी देखें.

निष्पादित करें

rpc Commit(CommitRequest) returns (CommitResponse)

दस्तावेज़ों को अपडेट करते समय, ट्रांज़ैक्शन की प्रोसेस पूरी करता है.

अनुमति के दायरे

इनमें से किसी एक OAuth स्कोप की ज़रूरत होती है:

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

ज़्यादा जानकारी के लिए, पुष्टि करने से जुड़ी खास जानकारी देखें.

दस्तावेज़ बनाएं

rpc CreateDocument(CreateDocumentRequest) returns (Document)

नया दस्तावेज़ बनाता है.

अनुमति के दायरे

इनमें से किसी एक OAuth स्कोप की ज़रूरत होती है:

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

ज़्यादा जानकारी के लिए, पुष्टि करने से जुड़ी खास जानकारी देखें.

दस्तावेज़ मिटाएं

rpc DeleteDocument(DeleteDocumentRequest) returns (Empty)

दस्तावेज़ मिटाता है.

अनुमति के दायरे

इनमें से किसी एक OAuth स्कोप की ज़रूरत होती है:

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

ज़्यादा जानकारी के लिए, पुष्टि करने से जुड़ी खास जानकारी देखें.

दस्तावेज़ पाएं

rpc GetDocument(GetDocumentRequest) returns (Document)

एक दस्तावेज़ मिलता है.

अनुमति के दायरे

इनमें से किसी एक OAuth स्कोप की ज़रूरत होती है:

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

ज़्यादा जानकारी के लिए, पुष्टि करने से जुड़ी खास जानकारी देखें.

सूची संग्रह

rpc ListCollectionIds(ListCollectionIdsRequest) returns (ListCollectionIdsResponse)

इसमें दस्तावेज़ के नीचे मौजूद सभी कलेक्शन आईडी की जानकारी होती है.

अनुमति के दायरे

इनमें से किसी एक OAuth स्कोप की ज़रूरत होती है:

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

ज़्यादा जानकारी के लिए, पुष्टि करने से जुड़ी खास जानकारी देखें.

सूची दस्तावेज़

rpc ListDocuments(ListDocumentsRequest) returns (ListDocumentsResponse)

यह दस्तावेज़ की सूची है.

अनुमति के दायरे

इनमें से किसी एक OAuth स्कोप की ज़रूरत होती है:

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

ज़्यादा जानकारी के लिए, पुष्टि करने से जुड़ी खास जानकारी देखें.

सुनना

rpc Listen(ListenRequest) returns (ListenResponse)

बदलावों को सुनता है. यह तरीका सिर्फ़ gRPC या WebChannel के ज़रिए उपलब्ध है (REST के ज़रिए नहीं).

अनुमति के दायरे

इनमें से किसी एक OAuth स्कोप की ज़रूरत होती है:

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

ज़्यादा जानकारी के लिए, पुष्टि करने से जुड़ी खास जानकारी देखें.

विभाजन क्वेरी

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

ज़्यादा जानकारी के लिए, पुष्टि करने से जुड़ी खास जानकारी देखें.

रन एग्रीगेशन क्वेरी

rpc RunAggregationQuery(RunAggregationQueryRequest) returns (RunAggregationQueryResponse)

एग्रीगेशन क्वेरी चलाता है.

Firestore.RunQuery जैसे Document नतीजे जनरेट करने के बजाय, यह एपीआई 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

ज़्यादा जानकारी के लिए, पुष्टि करने से जुड़ी खास जानकारी देखें.

रनक्वेरी

rpc RunQuery(RunQueryRequest) returns (RunQueryResponse)

क्वेरी चलाता है.

अनुमति के दायरे

इनमें से किसी एक OAuth स्कोप की ज़रूरत होती है:

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

ज़्यादा जानकारी के लिए, पुष्टि करने से जुड़ी खास जानकारी देखें.

अपडेट दस्तावेज़

rpc UpdateDocument(UpdateDocumentRequest) returns (Document)

किसी दस्तावेज़ को अपडेट या शामिल करता है.

अनुमति के दायरे

इनमें से किसी एक OAuth स्कोप की ज़रूरत होती है:

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

ज़्यादा जानकारी के लिए, पुष्टि करने से जुड़ी खास जानकारी देखें.

लिखें

rpc Write(WriteRequest) returns (WriteResponse)

दस्तावेज़ के बैच को क्रम से स्ट्रीम करता है, ताकि वे दस्तावेज़ को अपडेट कर सकें और मिटा सकें. यह तरीका सिर्फ़ gRPC या WebChannel के ज़रिए उपलब्ध है (REST के ज़रिए नहीं).

अनुमति के दायरे

इनमें से किसी एक OAuth स्कोप की ज़रूरत होती है:

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

ज़्यादा जानकारी के लिए, पुष्टि करने से जुड़ी खास जानकारी देखें.

एग्रीगेशन का नतीजा

Firestore एग्रीगेशन क्वेरी से मिले एक बकेट का नतीजा.

aggregate_fields की कुंजियां, एग्रीगेशन क्वेरी में सभी नतीजों के लिए एक जैसी होती हैं. ये कुंजियां दस्तावेज़ क्वेरी के उलट होती हैं जिनमें हर नतीजे के लिए अलग-अलग फ़ील्ड मौजूद हो सकते हैं.

फ़ील्ड
aggregate_fields

map<string, Value>

यह एग्रीगेशन फ़ंक्शन का नतीजा होता है, जैसे कि COUNT(*) AS total_docs.

कुंजी, इनपुट पर एग्रीगेशन फ़ंक्शन को असाइन की गई alias होती है और इस मैप का साइज़, क्वेरी में एग्रीगेशन फ़ंक्शन की संख्या के बराबर होता है.

अरे वैल्यू

कलेक्शन की वैल्यू.

फ़ील्ड
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

दस्तावेज़ों को ठीक उसी तरह पढ़ता है जिस तरह वे दिए गए समय पर मौजूद थे.

यह पिछले एक घंटे के अंदर का सटीक टाइमस्टैंप होना चाहिए या अगर पॉइंट-इन-टाइम रिकवरी चालू है, तो यह पिछले सात दिनों में पूरे मिनट का टाइमस्टैंप भी हो सकता है.

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

लागू की जाने वाली जानकारी.

लिखने का तरीका, ऐटम तरीके से लागू नहीं होता है और ऑर्डर को क्रम में लगाने की गारंटी नहीं देता है. हर लेखन अलग-अलग सफल या फ़ेल होता है. आप एक ही दस्तावेज़ पर प्रति अनुरोध एक से ज़्यादा बार नहीं लिख सकते.

labels

map<string, string>

इस बैच से जुड़े लेबल लिखें.

BatchWriteResponse

Firestore.BatchWrite का जवाब.

फ़ील्ड
write_results[]

WriteResult

लिखे गए शब्दों को लागू करने का नतीजा.

लिखने का यह नतीजा, अनुरोध में किए गए लिखने के नतीजे से मेल खाता है.

status[]

Status

राइट्स लागू करने की स्थिति.

राइटिंग का यह स्टेटस, अनुरोध के राइट यानी अनुरोध के राइट से जुड़ा होता है.

लेन-देन का अनुरोध शुरू करें

Firestore.BeginTransaction का अनुरोध.

फ़ील्ड
database

string

ज़रूरी है. डेटाबेस का नाम. फ़ॉर्मैट: projects/{project_id}/databases/{database_id}.

options

TransactionOptions

लेन-देन के विकल्प. डिफ़ॉल्ट तौर पर, रीड-राइट ट्रांज़ैक्शन पर सेट होता है.

beginTransactionResponse

Firestore.BeginTransaction का जवाब.

फ़ील्ड
transaction

bytes

शुरू किया गया लेन-देन.

बिटसीक्वेंस

बिट का क्रम, जो बाइट अरे में एन्कोड होता है.

bitmap बाइट कलेक्शन में हर बाइट, क्रम के 8 बिट स्टोर करता है. सिर्फ़ आखिरी बाइट अपवाद है, जिसमें 8 या उससे कम बिट स्टोर हो सकते हैं. padding, आखिरी बाइट के बिट की संख्या तय करता है, जिसे "पैडिंग" के तौर पर अनदेखा किया जाता है. इन "पैडिंग" बिट की वैल्यू नहीं बताई गई हैं. इन्हें अनदेखा करना ज़रूरी है.

पहला बिट वापस पाने के लिए, बिट 0 का हिसाब लगाएं: (bitmap[0] & 0x01) != 0. दूसरा बिट पाने के लिए, बिट 1 को कैलकुलेट करें: (bitmap[0] & 0x02) != 0. तीसरा बिट पाने के लिए, बिट 2 का हिसाब लगाएं: (bitmap[0] & 0x04) != 0. चौथा बिट, बिट 3 पाने के लिए, इसका हिसाब लगाएं: (bitmap[0] & 0x08) != 0. बिट n को वापस पाने के लिए, कैलकुलेट करें: (bitmap[n / 8] & (0x01 << (n % 8))) != 0.

BitSequence (इसमें मौजूद बिट की संख्या) का "साइज़", इस फ़ॉर्मूला से कैलकुलेट किया जाता है: (bitmap.length * 8) - padding.

फ़ील्ड
bitmap

bytes

वे बाइट जो बिट क्रम को कोड में बदलते हैं. इसकी लंबाई शून्य हो सकती है.

padding

int32

bitmap में आखिरी बाइट के बिट की संख्या, जिसे "पैडिंग (जगह)" के तौर पर अनदेखा करना है. अगर bitmap की लंबाई शून्य है, तो यह मान 0 होना चाहिए. अगर ऐसा नहीं है, तो यह वैल्यू 0 से 7 के बीच होनी चाहिए.

ब्लूमफ़िल्टर

ब्लूम फ़िल्टर (https://en.wikipedia.org/wiki/Bloom_filter).

ब्लूम फ़िल्टर, एंट्री को MD5 के साथ हैश करता है और नतीजे के तौर पर मिलने वाले 128-बिट हैश को दो अलग-अलग 64-बिट हैश वैल्यू के तौर पर देखता है. इन्हें 2 की कॉम्प्लीमेंट्री एन्कोडिंग का इस्तेमाल करके, साइन नहीं किए गए पूर्णांक के तौर पर समझा जाता है.

इसके बाद, i=0 से शुरू होने वाले इन दो हैश वैल्यू का इस्तेमाल करके, फ़ॉर्मूला का इस्तेमाल करके hash_count हैश वैल्यू की गिनती की जाती है: h1 और h2:

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

अगर यह नीति सेट है, तो इस लेन-देन के सभी राइट को लागू करता है और इसे शेयर करता है.

कमिट रिस्पॉन्स

Firestore.Commit का जवाब.

फ़ील्ड
write_results[]

WriteResult

लिखे गए शब्दों को लागू करने का नतीजा.

लिखने का यह नतीजा, अनुरोध में किए गए लिखने के नतीजे से मेल खाता है.

commit_time

Timestamp

गतिविधि तय करने का समय. read_time के बराबर या उससे ज़्यादा वैल्यू वाला टेक्स्ट पढ़ने पर, गारंटी के साथ कॉन्टेंट का असर दिखेगा.

दस्तावेज़ के लिए अनुरोध करें

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

अगर दी गई वैल्यू, दी गई वैल्यू के ठीक पहले या बाद में है, तो क्वेरी के हिसाब से तय किए गए क्रम के मुताबिक क्रम की वैल्यू.

दस्तावेज़ अनुरोध मिटाएं

Firestore.DeleteDocument का अनुरोध.

फ़ील्ड
name

string

ज़रूरी है. मिटाने के लिए, दस्तावेज़ का संसाधन नाम. फ़ॉर्मैट: projects/{project_id}/databases/{database_id}/documents/{document_path}.

current_document

Precondition

दस्तावेज़ पर एक वैकल्पिक पहले से तय शर्त. अगर इसे सेट किया जाता है और टारगेट दस्तावेज़ से पूरा नहीं किया जाता है, तो अनुरोध रद्द हो जाएगा.

दस्तावेज़

Firestore दस्तावेज़.

1 एमबी - 4 बाइट से ज़्यादा नहीं होना चाहिए.

फ़ील्ड
name

string

दस्तावेज़ के संसाधन का नाम, जैसे कि projects/{project_id}/databases/{database_id}/documents/{document_path}.

fields

map<string, Value>

create_time

Timestamp

सिर्फ़ आउटपुट के लिए. दस्तावेज़ बनाए जाने का समय.

किसी दस्तावेज़ को मिटाने के बाद उसे फिर से बनाने पर, यह वैल्यू एक ही तरह से बढ़ती है. इसकी तुलना, अन्य दस्तावेज़ों की वैल्यू और किसी क्वेरी के read_time से भी की जा सकती है.

update_time

Timestamp

सिर्फ़ आउटपुट के लिए. वह समय जब दस्तावेज़ को पिछली बार बदला गया था.

शुरुआत में यह वैल्यू create_time पर सेट होती है. इसके बाद, दस्तावेज़ में हर बदलाव के साथ यह वैल्यू एक जैसी होती है. इसकी तुलना, अन्य दस्तावेज़ों की वैल्यू और किसी क्वेरी के read_time से भी की जा सकती है.

दस्तावेज़ परिवर्तन

Document बदल गया है.

ऐसा हो सकता है कि कई writes, हटाने की वजह से, Document के लिए नई वैल्यू मिली हो.

अगर एक से ज़्यादा टारगेट पर असर पड़ता है, तो एक ही लॉजिकल बदलाव के लिए कई DocumentChange मैसेज दिखाए जा सकते हैं.

फ़ील्ड
document

Document

Document की नई स्थिति.

अगर mask सेट है, तो इसमें सिर्फ़ वे फ़ील्ड होते हैं जिन्हें अपडेट किया गया था या जोड़ा गया था.

target_ids[]

int32

टारगेट के टारगेट आईडी का सेट, जो इस दस्तावेज़ से मैच करता है.

removed_target_ids[]

int32

टारगेट के लिए टारगेट आईडी का सेट, जो अब इस दस्तावेज़ से मेल नहीं खाता.

दस्तावेज़ मिटाएं

Document को मिटा दिया गया है.

ऐसा कई writes की वजह से हो सकता है. इनमें वे अपडेट भी शामिल हैं जिनमें से आखिरी ने Document को मिटा दिया था.

अगर एक से ज़्यादा टारगेट पर असर पड़ता है, तो एक ही लॉजिकल डिलीट के लिए एक से ज़्यादा DocumentDelete मैसेज दिखाए जा सकते हैं.

फ़ील्ड
document

string

मिटाए गए Document का संसाधन नाम.

removed_target_ids[]

int32

टारगेट के लिए टारगेट आईडी का सेट, जो पहले इस इकाई से मेल खाता था.

read_time

Timestamp

मैसेज पढ़े जाने का वह टाइमस्टैंप जब डिवाइस को मिटाया गया था.

हटाए गए आइटम के commit_time से ज़्यादा या उसके बराबर.

डॉक्यूमेंटमास्क

किसी दस्तावेज़ पर फ़ील्ड पाथ का सेट. इसका इस्तेमाल, दस्तावेज़ पाने या अपडेट करने की कार्रवाई को उसके फ़ील्ड के सबसेट तक सीमित करने के लिए किया जाता है. यह स्टैंडर्ड फ़ील्ड मास्क से अलग होता है, क्योंकि यह हमेशा Document के दायरे में आता है. साथ ही, यह Value के डाइनैमिक तरीके को ध्यान में रखता है.

फ़ील्ड
field_paths[]

string

मास्क में फ़ील्ड पाथ की सूची. फ़ील्ड पाथ के सिंटैक्स का रेफ़रंस देखने के लिए, Document.fields पर जाएं.

दस्तावेज़ हटाएं

टारगेट के व्यू से एक Document को हटा दिया गया है.

यह तब भेजा जाता है, जब दस्तावेज़ किसी टारगेट के लिए अब काम का नहीं है और व्यू में नहीं है. अगर सर्वर, दस्तावेज़ की नई वैल्यू नहीं भेज सकता, तो DocumentDelete या DocumentChange की जगह इस ईमेल को भेजा जा सकता है.

अगर एक से ज़्यादा टारगेट पर असर पड़ता है, तो एक ही लॉजिकल राइटिंग या मिटाने के लिए, एक से ज़्यादा DocumentRemove मैसेज दिखाए जा सकते हैं.

फ़ील्ड
document

string

Document का संसाधन नाम, जो अब स्क्रीन पर नहीं है.

removed_target_ids[]

int32

टारगेट के लिए, टारगेट आईडी का सेट जो पहले इस दस्तावेज़ से मैच हुआ था.

read_time

Timestamp

कॉन्टेंट हटाने का वह टाइमस्टैंप जब हटाया गया था.

बदलाव करने/मिटाएं/हटाएं के commit_time के बराबर या इससे ज़्यादा.

दस्तावेज़ रूपांतरण

किसी दस्तावेज़ का ट्रांसफ़ॉर्मेशन.

फ़ील्ड
document

string

बदलने के लिए दस्तावेज़ का नाम.

field_transforms[]

FieldTransform

बदलावों की सूची, जो दस्तावेज़ के फ़ील्ड पर क्रम से लागू करनी है. यह फ़ील्ड खाली नहीं होना चाहिए.

फ़ील्ड ट्रांसफ़ॉर्म

दस्तावेज़ के किसी फ़ील्ड का ट्रांसफ़ॉर्मेशन.

फ़ील्ड
field_path

string

फ़ील्ड का पाथ. फ़ील्ड पाथ के सिंटैक्स का रेफ़रंस देखने के लिए, Document.fields पर जाएं.

यूनियन फ़ील्ड transform_type. फ़ील्ड पर लागू किया जाने वाला ट्रांसफ़ॉर्मेशन. transform_type इनमें से सिर्फ़ एक हो सकता है:
set_to_server_value

ServerValue

यह फ़ील्ड, सर्वर की दी गई वैल्यू पर सेट करता है.

increment

Value

फ़ील्ड की मौजूदा वैल्यू में, दी गई वैल्यू जोड़ता है.

यह एक पूर्णांक या डबल वैल्यू होनी चाहिए. अगर फ़ील्ड, कोई पूर्णांक या डबल नहीं है या फ़ील्ड मौजूद नहीं है, तो ट्रांसफ़ॉर्मेशन ऐक्शन फ़ील्ड को दी गई वैल्यू पर सेट कर देगा. अगर दी गई वैल्यू या मौजूदा फ़ील्ड की वैल्यू में से कोई एक है, तो दोनों वैल्यू को डबल माना जाएगा. डबल अंकगणित और दोहरी वैल्यू को दिखाने के लिए, आईईईई 754 सिमैंटिक का पालन किया जाता है. अगर पॉज़िटिव/नेगेटिव पूर्णांक ओवरफ़्लो है, तो फ़ील्ड में सबसे बड़े मान के पॉज़िटिव/नेगेटिव पूर्णांक का पता लगाया जाता है.

maximum

Value

फ़ील्ड को उसकी मौजूदा वैल्यू और दी गई वैल्यू पर सेट करता है.

यह एक पूर्णांक या डबल वैल्यू होनी चाहिए. अगर फ़ील्ड, कोई पूर्णांक या डबल नहीं है या फ़ील्ड मौजूद नहीं है, तो ट्रांसफ़ॉर्मेशन ऐक्शन फ़ील्ड को दी गई वैल्यू पर सेट कर देगा. अगर फ़ील्ड और इनपुट वैल्यू, दोनों टाइप की हैं, तो मैक्सिमम ऑपरेशन लागू होने पर, फ़ील्ड बड़े ऑपरेंड वाले टाइप को अपनाएगा. इसका मतलब है कि एक पूर्णांक और डबल वैल्यू है. अगर ऑपरेंड मिलते-जुलते हैं (जैसे, 3 और 3.0), तो फ़ील्ड नहीं बदलता है. 0, 0.0, और -0.0 सभी शून्य हैं. स्टोर की गई वैल्यू की ज़्यादा से ज़्यादा वैल्यू और इनपुट की शून्य वैल्यू, हमेशा स्टोर की गई वैल्यू होती है. किसी भी न्यूमेरिक वैल्यू x और NaN का ज़्यादा से ज़्यादा साइज़ NaN है.

minimum

Value

यह फ़ील्ड को, उसकी मौजूदा वैल्यू और दी गई वैल्यू के कम से कम वैल्यू पर सेट करता है.

यह एक पूर्णांक या डबल वैल्यू होनी चाहिए. अगर फ़ील्ड, कोई पूर्णांक या डबल नहीं है या फ़ील्ड मौजूद नहीं है, तो ट्रांसफ़ॉर्मेशन ऐक्शन फ़ील्ड को इनपुट वैल्यू पर सेट कर देगा. अगर फ़ील्ड और इनपुट की वैल्यू के अलग-अलग टाइप हैं, तो कम से कम कार्रवाई लागू होने पर, फ़ील्ड छोटे संकार्य का टाइप चुन लेता है. इसका मतलब है कि एक पूर्णांक और डबल वैल्यू है. अगर ऑपरेंड मिलते-जुलते हैं (जैसे, 3 और 3.0), तो फ़ील्ड नहीं बदलता है. 0, 0.0, और -0.0 सभी शून्य हैं. सेव की गई कम से कम वैल्यू और इनपुट की शून्य वैल्यू, हमेशा सेव की गई वैल्यू होती है. किसी भी न्यूमेरिक वैल्यू x और NaN का कम से कम NaN होता है.

append_missing_elements

ArrayValue

अगर दिए गए एलिमेंट पहले से ही मौजूदा फ़ील्ड की वैल्यू में मौजूद नहीं हैं, तो उन्हें उसी क्रम में जोड़ें. अगर फ़ील्ड कोई अरे नहीं है या फ़ील्ड अब भी मौजूद नहीं है, तो इसे पहले खाली अरे पर सेट किया जाता है.

कोई वैल्यू मौजूद नहीं है या नहीं, यह पता लगाने के लिए अलग-अलग तरह की 3L और 3.0 जैसी संख्याओं को बराबर माना जाता है. NaN, NaN के बराबर है और शून्य, शून्य के बराबर है. अगर इनपुट में एक से ज़्यादा एक जैसी वैल्यू हैं, तो सिर्फ़ सबसे पहले वाली वैल्यू पर विचार किया जाएगा.

इससे जुड़ा transform_result शून्य मान होगा.

remove_all_from_array

ArrayValue

फ़ील्ड की अरे से, दिए गए सभी एलिमेंट हटाएं. अगर फ़ील्ड कोई अरे नहीं है या फ़ील्ड अब भी मौजूद नहीं है, तो इसे खाली अरे पर सेट कर दिया जाता है.

यह तय करते समय कि किसी एलिमेंट को हटाना है या नहीं, अलग-अलग टाइप (जैसे कि 3L और 3.0) की बराबर की संख्याओं को बराबर माना जाता है. NaN, NaN के बराबर है और शून्य, शून्य के बराबर है. ऐसा करने पर, डुप्लीकेट वैल्यू मिलने पर, मिलती-जुलती सभी वैल्यू हट जाएंगी.

इससे जुड़ा transform_result शून्य मान होगा.

सर्वर वैल्यू

वह वैल्यू जिसे सर्वर कैलकुलेट करता है.

एनम्स
SERVER_VALUE_UNSPECIFIED बताया नहीं गया है. इस वैल्यू का इस्तेमाल नहीं किया जाना चाहिए.
REQUEST_TIME वह समय जब सर्वर ने अनुरोध को मिलीसेकंड के सटीक होने के साथ प्रोसेस किया. अगर किसी ट्रांज़ैक्शन में एक से ज़्यादा फ़ील्ड (एक ही या अलग-अलग दस्तावेज़) पर इस्तेमाल किया जाता है, तो सभी फ़ील्ड को एक ही सर्वर टाइमस्टैंप मिलेगा.

एक्ज़ीक्यूशन आंकड़े

क्वेरी के निष्पादन के आंकड़े.

फ़ील्ड
results_returned

int64

दिए गए नतीजों की कुल संख्या, जिनमें दस्तावेज़, प्रोजेक्शन, एग्रीगेशन के नतीजे, कुंजियां शामिल हैं.

execution_duration

Duration

बैकएंड में क्वेरी चलाने में लगने वाला कुल समय.

read_operations

int64

बिल करने लायक रीड ऑपरेशन.

debug_stats

Struct

क्वेरी के एक्ज़ीक्यूशन के बाद, आंकड़ों को डीबग करना. ध्यान दें कि Firestore के बेहतर होने के साथ-साथ, डीबग करने के आंकड़ों में भी बदलाव हो सकते हैं. इसमें ये चीज़ें शामिल हो सकती हैं: { "indexes_entries_scanted": "1000", "documents_scaned": "20", "billing_details" : { "documents_billable": "20", "index_entries_billable": "1000", "min_query_cost": "0" } } }

एक्स्टेंसफ़िल्टर

दिए गए टारगेट से मेल खाने वाले सभी दस्तावेज़ों का डाइजेस्ट.

फ़ील्ड
target_id

int32

वह टारगेट आईडी जिस पर यह फ़िल्टर लागू होता है.

count

int32

target_id से मेल खाने वाले दस्तावेज़ों की कुल संख्या.

अगर क्लाइंट के दस्तावेज़ों की संख्या, मैच होने वाले दस्तावेज़ों की संख्या से अलग है, तो क्लाइंट को मैन्युअल रूप से यह तय करना होगा कि कौनसे दस्तावेज़ टारगेट से मेल नहीं खाते.

इस काम में मदद पाने के लिए क्लाइंट, unchanged_names ब्लूम फ़िल्टर का इस्तेमाल कर सकता है. इसके लिए, उसे फ़िल्टर में दस्तावेज़ के सभी नामों की जांच करनी होगी. अगर फ़िल्टर में दस्तावेज़ का नाम नहीं है, तो इसका मतलब है कि दस्तावेज़ अब टारगेट से मेल नहीं खाता है.

unchanged_names

BloomFilter

एक ब्लूम फ़िल्टर होता है, जिसका नाम होने के बावजूद, इसमें target_id से मेल खाने वाले सभी दस्तावेज़ों के संसाधन नामों की UTF-8 बाइट एन्कोडिंग मौजूद होती है. यह कोड projects/{project_id}/databases/{database_id}/documents/{document_path} फ़ॉर्मैट में होता है.

सर्वर के विवेक के आधार पर, इस ब्लूम फ़िल्टर को हटाया जा सकता है. उदाहरण के लिए, ऐसा तब हो सकता है, जब यह माना जाए कि क्लाइंट इसका इस्तेमाल नहीं करेगा या फिर इसका हिसाब लगाना या ट्रांसमिशन करना काफ़ी महंगा है. क्लाइंट को इस फ़ील्ड के मौजूद होने से पहले इस्तेमाल किए गए लॉजिक पर वापस जाकर इस फ़ील्ड को ग्रेसफ़ुल तरीके से मैनेज करना होगा. इसका मतलब है कि क्लाइंट के कैश में मौजूद कौनसे दस्तावेज़ सिंक नहीं हुए हैं, यह देखने के लिए रिज़्यूमे टोकन के बिना टारगेट को फिर से जोड़ें.

मेट्रिक के बारे में जानकारी

क्वेरी की मेट्रिक के बारे में बताएं.

फ़ील्ड
plan_summary

PlanSummary

किसी क्वेरी के लिए, प्लानिंग के चरण की जानकारी.

execution_stats

ExecutionStats

क्वेरी के चलने से जुड़े एग्रीगेट किए गए आंकड़े. यह सिर्फ़ तब मौजूद होता है, जब ExplainOptions.analyze को 'सही है' पर सेट किया जाता है.

विस्तार से बताएं

क्वेरी के विकल्पों के बारे में बताएं.

फ़ील्ड
analyze

bool

ज़रूरी नहीं. इस क्वेरी को एक्ज़ीक्यूट करना है या नहीं.

'गलत' (डिफ़ॉल्ट) होने पर, क्वेरी प्लॉट की जाएगी. इसमें सिर्फ़ प्लानिंग स्टेज की मेट्रिक दिखेंगी.

'सही' होने पर, क्वेरी को प्लान करके लागू किया जाएगा. साथ ही, प्लानिंग और एक्ज़ीक्यूशन स्टेज, दोनों मेट्रिक के साथ क्वेरी के पूरे नतीजे दिखाए जाएंगे.

'दस्तावेज़' अनुरोध

Firestore.GetDocument का अनुरोध.

फ़ील्ड
name

string

ज़रूरी है. मिलने वाले दस्तावेज़ का संसाधन नाम. फ़ॉर्मैट: projects/{project_id}/databases/{database_id}/documents/{document_path}.

mask

DocumentMask

लौटाए जाने वाले फ़ील्ड. अगर यह नीति सेट नहीं है, तो सभी फ़ील्ड दिखाता है.

अगर दस्तावेज़ में कोई ऐसा फ़ील्ड है जो इस मास्क में मौजूद नहीं है, तो वह फ़ील्ड जवाब में नहीं लौटाया जाएगा.

यूनियन फ़ील्ड consistency_selector. इस लेन-देन के लिए कंसिस्टेंसी मोड. इस नीति को सेट न करने पर, डिफ़ॉल्ट रूप से एक जैसा अनुभव मिलता है. consistency_selector इनमें से सिर्फ़ एक हो सकता है:
transaction

bytes

लेन-देन के दस्तावेज़ को पढ़ता है.

read_time

Timestamp

दिए गए समय पर दस्तावेज़ के वर्शन को पढ़ता है.

यह पिछले एक घंटे के अंदर का सटीक टाइमस्टैंप होना चाहिए या अगर पॉइंट-इन-टाइम रिकवरी चालू है, तो यह पिछले सात दिनों में पूरे मिनट का टाइमस्टैंप भी हो सकता है.

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

दस्तावेज़ों को ठीक उसी तरह पढ़ता है जिस तरह वे दिए गए समय पर मौजूद थे.

यह पिछले एक घंटे के अंदर का सटीक टाइमस्टैंप होना चाहिए या अगर पॉइंट-इन-टाइम रिकवरी चालू है, तो यह पिछले सात दिनों में पूरे मिनट का टाइमस्टैंप भी हो सकता है.

ListCollectionIdsResponse

Firestore.ListCollectionIds का जवाब.

फ़ील्ड
collection_ids[]

string

कलेक्शन आईडी.

next_page_token

string

एक पेज टोकन, जिसका इस्तेमाल सूची को जारी रखने के लिए किया जा सकता है.

सूची दस्तावेज़ अनुरोध

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

ज़रूरी नहीं. एक जवाब में दिए जाने वाले दस्तावेज़ों की ज़्यादा से ज़्यादा संख्या.

Firestore इस वैल्यू से कम रिटर्न कर सकता है.

page_token

string

ज़रूरी नहीं. पेज टोकन, जो पिछले ListDocuments जवाब से मिला है.

अगले पेज को वापस पाने के लिए, यह जानकारी दें. पेजों पर नंबर डालते समय, page_size को छोड़कर बाकी सभी पैरामीटर, पेज टोकन जनरेट करने वाले अनुरोध में सेट की गई वैल्यू से मेल खाने चाहिए.

order_by

string

ज़रूरी नहीं. लौटाए जाने वाले दस्तावेज़ों का वैकल्पिक क्रम.

उदाहरण के लिए: priority desc, __name__ desc.

यह Firestore क्वेरी में इस्तेमाल किए गए ORDER BY का डुप्लीकेट वर्शन बनाता है. हालांकि, यह स्ट्रिंग प्रज़ेंटेशन में इस्तेमाल किया जाता है. मौजूद न होने पर, दस्तावेज़ों को __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

दिए गए समय पर टेक्स्ट पढ़ें.

यह पिछले एक घंटे के अंदर का सटीक टाइमस्टैंप होना चाहिए या अगर पॉइंट-इन-टाइम रिकवरी चालू है, तो यह पिछले सात दिनों में पूरे मिनट का टाइमस्टैंप भी हो सकता है.

ListDocumentsResponse

Firestore.ListDocuments का जवाब.

फ़ील्ड
documents[]

Document

दस्तावेज़ मिले.

next_page_token

string

दस्तावेज़ों का अगला पेज फिर से पाने के लिए टोकन.

अगर इस फ़ील्ड को हटा दिया जाता है, तो इसके बाद कोई पेज नहीं होता.

सुनने का अनुरोध

Firestore.Listen का अनुरोध

फ़ील्ड
database

string

ज़रूरी है. डेटाबेस का नाम. फ़ॉर्मैट: projects/{project_id}/databases/{database_id}.

labels

map<string, string>

टारगेट में हुए इस बदलाव से जुड़े लेबल.

यूनियन फ़ील्ड target_change. काम करने वाले टारगेट में बदलाव हो गया है. target_change इनमें से सिर्फ़ एक हो सकता है:
add_target

Target

इस स्ट्रीम में जोड़ने के लिए टारगेट.

remove_target

int32

उस टारगेट का आईडी जिसे इस स्ट्रीम से हटाना है.

लिसनर रिस्पॉन्स

Firestore.Listen का जवाब.

फ़ील्ड
यूनियन फ़ील्ड response_type. काम करने वाले जवाब. response_type इनमें से सिर्फ़ एक हो सकता है:
target_change

TargetChange

टारगेट बदल गए हैं.

document_change

DocumentChange

Document बदल गया है.

document_delete

DocumentDelete

Document को मिटा दिया गया है.

document_remove

DocumentRemove

Document को टारगेट से हटा दिया गया है, क्योंकि यह अब उस टारगेट के लिए काम की नहीं है.

filter

ExistenceFilter

दिए गए टारगेट के लिए, पहले लौटाए गए दस्तावेज़ों के सेट पर लागू करने वाला फ़िल्टर.

तब लौटाया जाता है जब दस्तावेज़ दिए गए टारगेट से हटाए गए हों, लेकिन सटीक दस्तावेज़ नहीं पता.

मैपवैल्यू

मैप की वैल्यू.

फ़ील्ड
fields

map<string, Value>

मैप के फ़ील्ड.

मैप की कुंजियां, फ़ील्ड के नाम दिखाती हैं. रेगुलर एक्सप्रेशन __.*__ से मैच करने वाले फ़ील्ड के नाम रिज़र्व हैं. कुछ दस्तावेज़ों में सेव किए गए कॉन्टेक्स्ट को छोड़कर, रिज़र्व किए गए फ़ील्ड के नाम इस्तेमाल नहीं किए जा सकते. UTF-8 के तौर पर दिखाई जाने वाली मैप कुंजी का साइज़ 1,500 बाइट से ज़्यादा नहीं होना चाहिए. साथ ही, इसे खाली नहीं छोड़ा जा सकता.

विभाजन क्वेरी का अनुरोध

Firestore.PartitionQuery का अनुरोध.

फ़ील्ड
parent

string

ज़रूरी है. पैरंट संसाधन का नाम. फ़ॉर्मैट: projects/{project_id}/databases/{database_id}/documents. दस्तावेज़ के संसाधन के नाम इस्तेमाल नहीं किए जा सकते. सिर्फ़ डेटाबेस के संसाधन के नाम दिए जा सकते हैं.

partition_count

int64

विभाजन पॉइंट की ज़्यादा से ज़्यादा संख्या. ये सेगमेंट, खोज के नतीजों के कई पेजों पर दिखाए जा सकते हैं. संख्या पॉज़िटिव होनी चाहिए. लौटाए गए सेगमेंट की असल संख्या कम हो सकती है.

उदाहरण के लिए, इसे चलाए जाने के लिए पैरलल क्वेरी की संख्या से कम पर सेट किया जा सकता है या डेटा पाइपलाइन के काम को चलाने के दौरान, कर्मियों की संख्या या उपलब्ध कंप्यूट इंस्टेंस से कम क्वेरी को सेट किया जा सकता है.

page_token

string

next_page_token की वैल्यू, पिछले कॉल से PartitionQuery पर लौटाए गई है. इसका इस्तेमाल, नतीजों का अन्य सेट पाने के लिए किया जा सकता है. नतीजों के सेट के बीच ऑर्डर की कोई गारंटी नहीं है. इसलिए, नतीजों के एक से ज़्यादा सेट का इस्तेमाल करने के लिए, नतीजे के अलग-अलग सेट को मर्ज करना होगा.

उदाहरण के लिए, page_token का इस्तेमाल करके बाद में आने वाले दो कॉल दिख सकते हैं:

  • कर्सर B, कर्सर M, कर्सर Q
  • कर्सर A, कर्सर U, कर्सर W

विभाजन क्वेरी को दी गई क्वेरी के नतीजों के क्रम में पूरे नतीजे का सेट पाने के लिए, नतीजों के सेट मर्ज किए जाने चाहिए: कर्सर A, कर्सर B, कर्सर M, कर्सर Q, कर्सर U, कर्सर W

page_size

int32

इस कॉल में दिए जाने वाले सेगमेंट की ज़्यादा से ज़्यादा संख्या, जो partition_count पर निर्भर करती है.

उदाहरण के लिए, अगर partition_count = 10 है और page_size = 8 है, तो पार्टीशन क्वेरी का पहला कॉल, 8 पार्टिशन तक दिखाएगा. साथ ही, ज़्यादा नतीजे होने पर एक next_page_token दिखाएगा. विभाजन क्वेरी पर दूसरे कॉल पर ज़्यादा से ज़्यादा दो पार्टिशन दिखाई जाएंगी, ताकि partition_count में दी गई कुल 10 संख्या को पूरा किया जा सके.

यूनियन फ़ील्ड query_type. सेगमेंट करने के लिए क्वेरी. query_type इनमें से सिर्फ़ एक हो सकता है:
structured_query

StructuredQuery

स्ट्रक्चर्ड क्वेरी. क्वेरी में सभी डिसेंडेंट के साथ कलेक्शन तय होना चाहिए और नाम को बढ़ते क्रम में लगाया जाना चाहिए. अन्य फ़िल्टर, इसके हिसाब से ऑर्डर करें, सीमाएं, ऑफ़सेट, और स्टार्ट/एंड कर्सर काम नहीं करते.

यूनियन फ़ील्ड consistency_selector. इस अनुरोध के लिए कंसिस्टेंसी मोड. इस नीति को सेट न करने पर, डिफ़ॉल्ट रूप से एक जैसा अनुभव मिलता है. consistency_selector इनमें से सिर्फ़ एक हो सकता है:
read_time

Timestamp

दस्तावेज़ों को ठीक उसी तरह पढ़ता है जिस तरह वे दिए गए समय पर मौजूद थे.

यह पिछले एक घंटे के अंदर का सटीक टाइमस्टैंप होना चाहिए या अगर पॉइंट-इन-टाइम रिकवरी चालू है, तो यह पिछले सात दिनों में पूरे मिनट का टाइमस्टैंप भी हो सकता है.

पार्टीशन क्वेरी रिस्पॉन्स

Firestore.PartitionQuery का जवाब.

फ़ील्ड
partitions[]

Cursor

विभाजन के नतीजे. हर सेगमेंट एक स्प्लिट पॉइंट होता है, जिसका इस्तेमाल RunQuery के लिए क्वेरी के नतीजों को शुरुआती या आखिरी पॉइंट के तौर पर करना होगा. RunQuery अनुरोध उसी क्वेरी के साथ किए जाने चाहिए जो इस PartneritionQuery अनुरोध को दी गई थी. पार्टीशन कर्सर को उसी क्रम में रखा जाएगा जिस क्रम में पार्टीशन क्वेरी के लिए दी गई क्वेरी के नतीजे एक ही क्रम में लगाए जाएंगे.

उदाहरण के लिए, अगर विभाजन क्वेरी का अनुरोध, विभाजन कर्सर A और B को लौटाता है, तो नीचे दी गई तीन क्वेरी को चलाने से मूल क्वेरी का पूरा नतीजा सेट वापस मिल जाएगा:

  • क्वेरी, end_at A
  • क्वेरी, start_at A, end_at B
  • क्वेरी, start_at B

खाली नतीजे का मतलब यह हो सकता है कि क्वेरी में बहुत कम नतीजे हैं, जिन्हें बांटा जा सकता है या क्वेरी में सेगमेंट बनाने की सुविधा अभी काम नहीं करती.

next_page_token

string

एक पेज टोकन, जिसका इस्तेमाल नतीजों के एक और सेट का अनुरोध करने के लिए किया जा सकता है. यह टोकन, उस संख्या तक हो सकता है जो PartneritionQuery अनुरोध में partition_count की मदद से तय किया जाता है. अगर खाली है, तो और नतीजे नहीं मिलते.

प्लान की खास जानकारी

किसी क्वेरी के लिए, प्लानिंग के चरण की जानकारी.

फ़ील्ड
indexes_used[]

Struct

क्वेरी के लिए चुने गए इंडेक्स. उदाहरण के लिए: [ {"query_scope": "Collection", "property": "(foo ASC, name ASC)"}, {"query_scope": "Collection", "property": "(bar ASC, name ASC)"} ]

पहले से तय की गई शर्त

दस्तावेज़ के लिए पहले से तय की गई शर्त, जिसका इस्तेमाल शर्तों के साथ कार्रवाइयां करने के लिए किया जाता है.

फ़ील्ड
यूनियन फ़ील्ड condition_type. पहले से तय की गई शर्त का टाइप. condition_type इनमें से सिर्फ़ एक हो सकता है:
exists

bool

true पर सेट होने पर, टारगेट दस्तावेज़ मौजूद होना चाहिए. false पर सेट होने पर, टारगेट दस्तावेज़ मौजूद नहीं होना चाहिए.

update_time

Timestamp

अगर नीति को सेट किया जाता है, तो यह ज़रूरी है कि टारगेट दस्तावेज़ मौजूद हो और उस समय उसे आखिरी बार अपडेट किया गया हो. टाइमस्टैंप, माइक्रोसेकंड में अलाइन होना चाहिए.

रोलबैक अनुरोध

Firestore.Rollback का अनुरोध.

फ़ील्ड
database

string

ज़रूरी है. डेटाबेस का नाम. फ़ॉर्मैट: projects/{project_id}/databases/{database_id}.

transaction

bytes

ज़रूरी है. रोल बैक करने के लिए लेन-देन.

Runएग्रीगेशनQueryRequest

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

क्वेरी को दिए गए टाइमस्टैंप पर लागू करता है.

यह पिछले एक घंटे के अंदर का सटीक टाइमस्टैंप होना चाहिए या अगर पॉइंट-इन-टाइम रिकवरी चालू है, तो यह पिछले सात दिनों में पूरे मिनट का टाइमस्टैंप भी हो सकता है.

Runएग्रीगेशनQueryResponse

Firestore.RunAggregationQuery का जवाब.

फ़ील्ड
result

AggregationResult

एक एग्रीगेशन नतीजा.

आंशिक प्रोग्रेस की रिपोर्ट करते समय यह मौजूद नहीं होता.

transaction

bytes

इस अनुरोध के तहत शुरू किया गया लेन-देन.

यह जानकारी सिर्फ़ पहले जवाब में तब मौजूद होती है, जब अनुरोध में नया लेन-देन शुरू करने का अनुरोध किया गया हो.

read_time

Timestamp

वह समय जब कुल नतीजे को कैलकुलेट किया गया था. ऐसा हमेशा एक ही चीज़ के रूप में होता है. इस मामले में, इस बात की गारंटी है कि नतीजे की स्ट्रीम में मौजूद पिछले एग्रीगेशन नतीजे के read_time और इस कॉलम में कोई बदलाव नहीं हुआ होगा.

अगर क्वेरी से कोई नतीजा नहीं मिलता, तो read_time के साथ रिस्पॉन्स भेजा जाएगा, न कि result भेजा जाएगा. यह उस समय के बारे में बताता है जब क्वेरी चलाई गई थी.

explain_metrics

ExplainMetrics

मेट्रिक के बारे में जानकारी देने के लिए क्वेरी. ऐसा सिर्फ़ तब होता है, जब RunAggregationQueryRequest.explain_options दिया गया हो. साथ ही, इसे स्ट्रीम में आखिरी जवाब के साथ सिर्फ़ एक बार भेजा जाता है.

RunQueryRequest

Firestore.RunQuery का अनुरोध.

फ़ील्ड
parent

string

ज़रूरी है. पैरंट संसाधन का नाम. फ़ॉर्मैट: projects/{project_id}/databases/{database_id}/documents या projects/{project_id}/databases/{database_id}/documents/{document_path}. उदाहरण के लिए: projects/my-project/databases/my-database/documents या projects/my-project/databases/my-database/documents/chatrooms/my-chatroom

explain_options

ExplainOptions

ज़रूरी नहीं. क्वेरी के विकल्पों के बारे में बताएं. अगर यह नीति सेट की जाती है, तो क्वेरी के और भी आंकड़े दिखाए जाएंगे. अगर ऐसा नहीं है, तो सिर्फ़ क्वेरी के नतीजे दिखाए जाएंगे.

यूनियन फ़ील्ड query_type. चलाने के लिए क्वेरी. query_type इनमें से सिर्फ़ एक हो सकता है:
structured_query

StructuredQuery

स्ट्रक्चर्ड क्वेरी.

यूनियन फ़ील्ड consistency_selector. इस लेन-देन के लिए कंसिस्टेंसी मोड. इस नीति को सेट न करने पर, डिफ़ॉल्ट रूप से एक जैसा अनुभव मिलता है. consistency_selector इनमें से सिर्फ़ एक हो सकता है:
transaction

bytes

क्वेरी को पहले से चालू लेन-देन में चलाएं.

यहां दी गई वैल्यू, एक ओपेक ट्रांज़ैक्शन आईडी है, जिसमें क्वेरी को एक्ज़ीक्यूट किया जा सकता है.

new_transaction

TransactionOptions

नया लेन-देन शुरू करता है और दस्तावेज़ों को पढ़ता है. डिफ़ॉल्ट रूप से, रीड-ओनली लेन-देन होता है. नया लेन-देन आईडी, स्ट्रीम में पहले जवाब के तौर पर दिखाया जाएगा.

read_time

Timestamp

दस्तावेज़ों को ठीक उसी तरह पढ़ता है जिस तरह वे दिए गए समय पर मौजूद थे.

यह पिछले एक घंटे के अंदर का सटीक टाइमस्टैंप होना चाहिए या अगर पॉइंट-इन-टाइम रिकवरी चालू है, तो यह पिछले सात दिनों में पूरे मिनट का टाइमस्टैंप भी हो सकता है.

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 ने अनुरोध पूरा कर लिया है और कोई और दस्तावेज़ नहीं लौटाया जाएगा.

स्ट्रक्चर्ड एग्रीगेशन क्वेरी

StructuredQuery पर एग्रीगेशन चलाने के लिए Firestore क्वेरी.

फ़ील्ड
aggregations[]

Aggregation

ज़रूरी नहीं. structured_query के नतीजों पर लागू किए जाने वाले एग्रीगेशन की सीरीज़.

ज़रूरी है:

  • हर क्वेरी में कम से कम एक और ज़्यादा से ज़्यादा पांच एग्रीगेशन.
यूनियन फ़ील्ड query_type. इकट्ठा की जाने वाली बेस क्वेरी. query_type इनमें से सिर्फ़ एक हो सकता है:
structured_query

StructuredQuery

नेस्ट की गई स्ट्रक्चर्ड क्वेरी.

एग्रीगेशन

यह ऐसा एग्रीगेशन तय करता है जिससे एक नतीजा मिलता है.

फ़ील्ड
alias

string

ज़रूरी नहीं. एग्रीगेशन के नतीजे को सेव करने के लिए फ़ील्ड का वैकल्पिक नाम.

अगर यह नहीं दिया गया है, तो Firestore field_<incremental_id++> फ़ॉर्मैट के हिसाब से डिफ़ॉल्ट नाम चुनेगा. उदाहरण के लिए:

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

हो जाता है:

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

ज़रूरी है:

  • यह एग्रीगेशन के सभी उपनामों में यूनीक होना चाहिए.
  • document field name की शर्तों का पालन करें.
यूनियन फ़ील्ड operator. परफ़ॉर्म करने के लिए एग्रीगेशन का टाइप, ज़रूरी है. operator इनमें से सिर्फ़ एक हो सकता है:
count

Count

गिनती एग्रीगेटर.

sum

Sum

सम एग्रीगेटर.

avg

Avg

औसत एग्रीगेटर.

Avg

अनुरोध किए गए फ़ील्ड की वैल्यू का औसत.

  • सिर्फ़ अंकों वाली वैल्यू एग्रीगेट की जाएंगी. NULL के साथ-साथ बिना संख्या वाली सभी वैल्यू को छोड़ दिया गया है.

  • अगर एग्रीगेट की गई वैल्यू में NaN शामिल है, तो NaN वैल्यू दिखाता है. इनफ़िनिटी मैथ का फ़ॉर्मूला, आईईईई-754 के मानकों के हिसाब से है.

  • अगर एग्रीगेट की गई वैल्यू का सेट खाली है, तो यह NULL दिखाता है.

  • नतीजे को हमेशा डबल के तौर पर दिखाता है.

फ़ील्ड
field

FieldReference

एग्रीगेट किया जाने वाला फ़ील्ड.

गिनती

क्वेरी से मेल खाने वाले दस्तावेज़ों की संख्या.

COUNT(*) एग्रीगेशन फ़ंक्शन पूरे दस्तावेज़ पर काम करता है. इसलिए, इसे फ़ील्ड रेफ़रंस की ज़रूरत नहीं होती.

फ़ील्ड
up_to

Int64Value

ज़रूरी नहीं. गिनती करने के लिए दस्तावेज़ों की ज़्यादा से ज़्यादा संख्या का वैकल्पिक कंस्ट्रेंट.

यह स्कैन करने के लिए दस्तावेज़ों की संख्या की ऊपरी सीमा सेट करने का तरीका उपलब्ध कराता है. साथ ही, इसमें इंतज़ार का समय और कीमत कम होती है.

अनिर्दिष्ट को कोई बाउंड नहीं माना जाता है.

हाई लेवल का उदाहरण:

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

ज़रूरी है:

  • मौजूद होने पर शून्य से ज़्यादा होना चाहिए.

योग

अनुरोध किए गए फ़ील्ड की कुल वैल्यू.

  • सिर्फ़ अंकों वाली वैल्यू एग्रीगेट की जाएंगी. NULL के साथ-साथ बिना संख्या वाली सभी वैल्यू को छोड़ दिया गया है.

  • अगर एग्रीगेट की गई वैल्यू में NaN शामिल है, तो NaN वैल्यू दिखाता है. इनफ़िनिटी मैथ का फ़ॉर्मूला, आईईईई-754 के मानकों के हिसाब से है.

  • अगर एग्रीगेट की गई वैल्यू का सेट खाली है, तो यह 0 दिखाता है.

  • अगर सभी एग्रीगेट की गई संख्याएं पूर्णांक हैं और कुल योग का नतीजा ओवरफ़्लो नहीं होता है, तो 64-बिट पूर्णांक लौटाता है. ऐसा न करने पर, नतीजा डबल के तौर पर दिखता है. ध्यान दें कि एग्रीगेट की गई सभी वैल्यू पूर्णांक होने के बावजूद, अगर नतीजा 64-बिट वाले पूर्णांक में फ़िट नहीं हो पाता है, तो नतीजे को डबल के रूप में दिखाया जाता है. ऐसा होने पर, दिखाई गई वैल्यू सटीक नहीं होगी.

  • अंडरफ़्लो होने पर, फ़्लोटिंग-पॉइंट एग्रीगेशन तय नहीं होता. इसका मतलब है कि मौजूदा वैल्यू में बिना कोई बदलाव किए एक ही क्वेरी को बार-बार चलाने से, हर बार अलग नतीजे मिल सकते हैं. ऐसे मामलों में, वैल्यू को फ़्लोटिंग-पॉइंट नंबरों के बजाय, पूर्णांक के तौर पर सेव किया जाना चाहिए.

फ़ील्ड
field

FieldReference

एग्रीगेट किया जाने वाला फ़ील्ड.

स्ट्रक्चर्ड क्वेरी

Firestore क्वेरी.

क्वेरी के स्टेज इस क्रम में लागू किए जाते हैं: 1. 2 से. जहां 3. 4. order_by + start_at + end_at 5. ऑफ़सेट 6. सीमा चुनें

फ़ील्ड
select

Projection

दिखाए जाने वाले फ़ील्ड का वैकल्पिक सब-सेट.

यह किसी क्वेरी से लौटाए गए दस्तावेज़ों पर DocumentMask के रूप में काम करता है. अगर इस नीति को सेट नहीं किया जाता है, तो मान लिया जाता है कि कॉल करने वाला (कॉलर) सभी फ़ील्ड लौटाना चाहता है.

from[]

CollectionSelector

क्वेरी किए जाने वाले संग्रह.

where

Filter

लागू किया जाने वाला फ़िल्टर.

order_by[]

Order

क्वेरी के नतीजों पर लागू करने का क्रम.

Firestore की मदद से कॉलर कभी भी पूरा या आंशिक क्रम में या कोई भी ऑर्डर नहीं दे सकते. सभी मामलों में, Firestore इन नियमों के आधार पर यह गारंटी देता है कि ऑर्डर लगातार सही रहेंगे:

  • order_by में, इनक्वलिटी फ़िल्टर के साथ इस्तेमाल किए गए सभी फ़ील्ड का रेफ़रंस देने के लिए, वैल्यू डालना ज़रूरी है.
  • सभी फ़ील्ड, जो order_by में होना ज़रूरी है, लेकिन पहले से मौजूद नहीं हैं उन्हें फ़ील्ड के नाम के लेक्सिकोग्राफ़िक क्रम में जोड़ा गया है.
  • अगर __name__ में किसी ऑर्डर के बारे में नहीं बताया गया है, तो उसे डिफ़ॉल्ट रूप से जोड़ दिया जाता है.

फ़ील्ड को उसी क्रम में की गई दिशा के साथ जोड़ा जाता है जैसा कि आखिरी ऑर्डर में बताया गया था. अगर कोई ऑर्डर नहीं दिया गया है, तो फ़ील्ड को क्रम में लगाने की दिशा में जोड़ा जाता है. उदाहरण के लिए:

  • ORDER BY a, ORDER BY a ASC, __name__ ASC हो जाता है
  • ORDER BY a DESC, ORDER BY a DESC, __name__ DESC हो जाता है
  • WHERE a > 1, WHERE a > 1 ORDER BY a ASC, __name__ ASC हो जाता है
  • WHERE __name__ > ... AND a > 1, WHERE __name__ > ... AND a > 1 ORDER BY a ASC, __name__ ASC हो जाता है
start_at

Cursor

क्वेरी को शुरू करने के लिए, नतीजे में सेट की गई स्थिति का संभावित प्रीफ़िक्स.

नतीजे के सेट का क्रम, ओरिजनल क्वेरी के ORDER BY क्लॉज़ के हिसाब से तय होता है.

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

इस क्वेरी के नतीजे (b ASC, __name__ ASC) के हिसाब से क्रम में लगाए गए हैं.

कर्सर, जगह के पूरे क्रम या प्रीफ़िक्स का रेफ़रंस दे सकते हैं. हालांकि, वे दिए गए ORDER BY में दिए गए फ़ील्ड से ज़्यादा फ़ील्ड का रेफ़रंस नहीं दे सकते.

ऊपर दिए गए उदाहरण को ध्यान में रखते हुए, नीचे दिए गए स्टार्ट कर्सर को जोड़ने से अलग-अलग असर होगा:

  • START BEFORE (2, /k/123): a = 1 AND b > 2 AND __name__ > /k/123 से ठीक पहले क्वेरी शुरू करें.
  • START AFTER (10): a = 1 AND b > 10 के तुरंत बाद क्वेरी शुरू करें.

OFFSET को स्किप करने के लिए, पहले N नतीजों को स्कैन करना पड़ता है, जबकि 'शुरू करें' कर्सर की मदद से, क्वेरी लॉजिकल पोज़िशन से शुरू की जा सकती है. किसी असल नतीजे से मेल खाने के लिए, इस पोज़िशन की ज़रूरत नहीं होती. यह अगला दस्तावेज़ ढूंढने के लिए, इस पोज़िशन से स्कैन करेगा.

ज़रूरी है:

  • वैल्यू की संख्या, ORDER BY क्लॉज़ में बताई गई फ़ील्ड की संख्या से ज़्यादा नहीं हो सकती.
end_at

Cursor

नतीजे में किसी पोज़िशन का संभावित प्रीफ़िक्स, जो क्वेरी को खत्म करने के लिए सेट किया गया है.

यह START_AT के जैसा है, लेकिन इसमें शुरुआत की जगह के बजाय आखिरी पोज़िशन को कंट्रोल किया जाता है.

ज़रूरी है:

  • वैल्यू की संख्या, ORDER BY क्लॉज़ में बताई गई फ़ील्ड की संख्या से ज़्यादा नहीं हो सकती.
offset

int32

पहला नतीजा देने से पहले छोड़े जाने वाले दस्तावेज़ों की संख्या.

यह WHERE, START AT, और END AT के कंस्ट्रेंट के बाद, लेकिन LIMIT क्लॉज़ से पहले लागू होता है.

ज़रूरी है:

  • अगर बताई गई वैल्यू, शून्य से ज़्यादा या उसके बराबर होनी चाहिए.
limit

Int32Value

दिए जाने वाले नतीजों की ज़्यादा से ज़्यादा संख्या.

अन्य सभी पाबंदियों के बाद लागू होता है.

ज़रूरी है:

  • अगर बताई गई वैल्यू, शून्य से ज़्यादा या उसके बराबर होनी चाहिए.
find_nearest

FindNearest

ज़रूरी नहीं. आस-पास के संभावित लोगों की खोज.

अन्य सभी फ़िल्टर और क्रम के बाद लागू होता है.

दिए गए क्वेरी वेक्टर से सबसे नज़दीकी वेक्टर एम्बेडिंग खोजता है.

कलेक्शन सिलेक्टर

संग्रह जैसा कोई विकल्प, जैसे कि messages as m1.

फ़ील्ड
collection_id

string

कलेक्शन आईडी. सेट होने पर, सिर्फ़ इस आईडी वाले संग्रह चुने जाते हैं.

all_descendants

bool

गलत होने पर, सिर्फ़ ऐसे कलेक्शन चुने जाते हैं जो RunQueryRequest शामिल करने वाले parent के चाइल्ड हैं. सही होने पर, सभी डिसेंडेंट कलेक्शन को चुना जाता है.

कंपोज़िट फ़िल्टर

ऐसा फ़िल्टर जो दिए गए ऑपरेटर का इस्तेमाल करके, कई अन्य फ़िल्टर को मर्ज करता है.

फ़ील्ड
op

Operator

एक से ज़्यादा फ़िल्टर जोड़ने के लिए ऑपरेटर.

filters[]

Filter

संयोजन के लिए फ़िल्टर की सूची.

ज़रूरी है:

  • कम से कम एक फ़िल्टर मौजूद है.

ऑपरेटर

एक कंपोज़िट फ़िल्टर ऑपरेटर.

एनम्स
OPERATOR_UNSPECIFIED बताया नहीं गया है. इस वैल्यू का इस्तेमाल नहीं किया जाना चाहिए.
AND सभी फ़िल्टर लागू करने के लिए दस्तावेज़ ज़रूरी हैं.
OR संयुक्त फ़िल्टर में से कम से कम एक को पूरा करने के लिए दस्तावेज़ ज़रूरी हैं.

दिशानिर्देश

क्रम से लगाने का तरीका.

एनम्स
DIRECTION_UNSPECIFIED बताया नहीं गया है.
ASCENDING बढ़ते क्रम में.
DESCENDING घटते क्रम में.

फ़ील्डफ़िल्टर

किसी खास फ़ील्ड पर लगा फ़िल्टर.

फ़ील्ड
field

FieldReference

फ़िल्टर करने के लिए फ़ील्ड.

op

Operator

वह ऑपरेटर जिसके हिसाब से फ़िल्टर करना है.

value

Value

वह वैल्यू जिसकी तुलना करनी है.

ऑपरेटर

फ़ील्ड फ़िल्टर ऑपरेटर.

एनम्स
OPERATOR_UNSPECIFIED बताया नहीं गया है. इस वैल्यू का इस्तेमाल नहीं किया जाना चाहिए.
LESS_THAN

दिया गया field, दिए गए value से कम है.

ज़रूरी है:

  • वह field, order_by में पहले आता है.
LESS_THAN_OR_EQUAL

दिया गया field, दिए गए value से कम या उसके बराबर है.

ज़रूरी है:

  • वह field, order_by में पहले आता है.
GREATER_THAN

दिया गया field, दिए गए value से ज़्यादा है.

ज़रूरी है:

  • वह field, order_by में पहले आता है.
GREATER_THAN_OR_EQUAL

दिया गया field, दिए गए value से ज़्यादा या उसके बराबर है.

ज़रूरी है:

  • वह field, order_by में पहले आता है.
EQUAL दिया गया field, दिए गए value के बराबर है.
NOT_EQUAL

दिया गया field, दिए गए value के बराबर नहीं है.

ज़रूरी है:

  • कोई और NOT_EQUAL, NOT_IN, IS_NOT_NULL या IS_NOT_NAN नहीं.
  • order_by में यह field पहले आता है.
ARRAY_CONTAINS दिया गया field एक कलेक्शन है, जिसमें दिए गए value शामिल हैं.
IN

दिया गया field, दी गई सरणी में कम से कम एक मान के बराबर है.

ज़रूरी है:

  • वह value एक खाली ArrayValue नहीं है, लेकिन निकालने की सीमा पर निर्भर करता है.
  • एक ही क्वेरी में कोई NOT_IN फ़िल्टर नहीं है.
ARRAY_CONTAINS_ANY

दिया गया field एक ऐसा कलेक्शन है जिसमें दी गई अरे में से कोई भी वैल्यू शामिल होती है.

ज़रूरी है:

  • वह value एक खाली ArrayValue नहीं है, लेकिन निकालने की सीमा पर निर्भर करता है.
  • इस डिसजक्शन में, कोई अन्य ARRAY_CONTAINS_ANY फ़िल्टर नहीं है.
  • एक ही क्वेरी में कोई NOT_IN फ़िल्टर नहीं है.
NOT_IN

field की वैल्यू दी गई कैटगरी में नहीं है.

ज़रूरी है:

  • वह value एक खाली ArrayValue है, जिसमें ज़्यादा से ज़्यादा 10 वैल्यू हो सकती हैं.
  • कोई और OR, IN, ARRAY_CONTAINS_ANY, NOT_IN, NOT_EQUAL, IS_NOT_NULL या IS_NOT_NAN नहीं.
  • order_by में यह field पहले आता है.

फ़ील्ड रेफ़रंस

किसी दस्तावेज़ में किसी फ़ील्ड का रेफ़रंस, जैसे कि stats.operations.

फ़ील्ड
field_path

string

किसी दस्तावेज़ में किसी फ़ील्ड का रेफ़रंस.

ज़रूरी है:

  • सेगमेंट की डॉट-डीलिमिटेड (.) स्ट्रिंग होनी चाहिए. इसमें हर सेगमेंट document field name सीमाओं के मुताबिक होना चाहिए.

फ़िल्टर

एक फ़िल्टर.

फ़ील्ड
यूनियन फ़ील्ड filter_type. फ़िल्टर का टाइप. filter_type इनमें से सिर्फ़ एक हो सकता है:
composite_filter

CompositeFilter

एक कंपोज़िट फ़िल्टर.

field_filter

FieldFilter

दस्तावेज़ के फ़ील्ड पर मौजूद फ़िल्टर.

unary_filter

UnaryFilter

ऐसा फ़िल्टर जिसमें सिर्फ़ एक आर्ग्युमेंट इस्तेमाल किया जाता है.

Find आस-पास

आस-पास के लोगों की खोज से जुड़ा कॉन्फ़िगरेशन.

फ़ील्ड
vector_field

FieldReference

ज़रूरी है. खोज करने के लिए, इंडेक्स किया गया वेक्टर फ़ील्ड. सिर्फ़ ऐसे दस्तावेज़ दिखाए जा सकते हैं जिनमें वेक्टर मौजूद हो और जिनकी डाइमेंशनिंग, query_vector से मेल खाती हो.

query_vector

Value

ज़रूरी है. वह क्वेरी वेक्टर जिस पर हम खोज कर रहे हैं. 2048 से ज़्यादा डाइमेंशन का वेक्टर होना चाहिए.

distance_measure

DistanceMeasure

ज़रूरी है. इस्तेमाल की जाने वाली दूरी की माप, ज़रूरी है.

limit

Int32Value

ज़रूरी है. वापस लौटने के लिए निकटतम पड़ोसियों की संख्या. 1,000 से ज़्यादा का पूर्णांक नहीं होना चाहिए.

दूरी मापने का तरीका

वेक्टर की तुलना करते समय इस्तेमाल की जाने वाली दूरी की माप.

एनम्स
DISTANCE_MEASURE_UNSPECIFIED सेट नहीं होना चाहिए.
EUCLIDEAN वेक्टर के बीच EUCLIDEAN की दूरी मापता है. ज़्यादा जानने के लिए यूक्लिडियन देखें
COSINE वेक्टर की तुलना, उनके बीच के ऐंगल के आधार पर करता है. इससे आपको वेक्टर की तीव्रता पर निर्भर नहीं, बल्कि उस समानता को मेज़र करने में मदद मिलती है. हमारा सुझाव है कि COSINE की दूरी के बजाय, DOT_PRODUCT को यूनिट नॉर्मलाइज़्ड वेक्टर के साथ इस्तेमाल करें. यह गणितीय तौर पर बेहतर परफ़ॉर्म करता है. ज़्यादा जानने के लिए, कोसाइन में समानता देखें.
DOT_PRODUCT कोसाइन की तरह ही, लेकिन सदिशों के परिमाण से प्रभावित होता है. ज़्यादा जानने के लिए Dot Product देखें.

क्रम

फ़ील्ड में मौजूद ऑर्डर.

फ़ील्ड
field

FieldReference

ऑर्डर करने के लिए फ़ील्ड.

direction

Direction

ऑर्डर करने के लिए दिशा-निर्देश. डिफ़ॉल्ट तौर पर, यह ASCENDING पर सेट होती है.

अनुमान की रिपोर्ट

वापस आने के लिए दस्तावेज़ के फ़ील्ड का प्रोजेक्शन.

फ़ील्ड
fields[]

FieldReference

लौटाए जाने वाले फ़ील्ड.

अगर खाली है, तो सभी फ़ील्ड दिखाए जाते हैं. सिर्फ़ दस्तावेज़ का नाम वापस करने के लिए, ['__name__'] का इस्तेमाल करें.

यूनरीफ़िल्टर

एक ऑपरेंड वाला फ़िल्टर.

फ़ील्ड
op

Operator

लागू किया जाने वाला सिंगल ऑपरेटर.

यूनियन फ़ील्ड operand_type. फ़िल्टर का आर्ग्युमेंट. operand_type इनमें से सिर्फ़ एक हो सकता है:
field

FieldReference

वह फ़ील्ड जिस पर ऑपरेटर को लागू करना है.

ऑपरेटर

यूनरी ऑपरेटर.

एनम्स
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 नहीं.
  • order_by में यह field पहले आता है.
IS_NOT_NULL

दिया गया field, NULL के बराबर नहीं है.

ज़रूरी है:

  • एक NOT_EQUAL, NOT_IN, IS_NOT_NULL या IS_NOT_NAN.
  • order_by में यह field पहले आता है.

टारगेट

सुनने के लिए दस्तावेज़ों के सेट के बारे में जानकारी.

फ़ील्ड
target_id

int32

वह टारगेट आईडी जो स्ट्रीम पर टारगेट की पहचान करता है. एक धनात्मक संख्या और शून्य के अलावा कोई संख्या होनी चाहिए.

अगर target_id की वैल्यू 0 है या कोई जानकारी नहीं है, तो सर्वर इस टारगेट के लिए एक आईडी असाइन करेगा और उसे TargetChange::ADD इवेंट में दिखाएगा. target_id=0 वाला टारगेट जोड़ने के बाद, बाद के सभी टारगेट में target_id=0 भी होना चाहिए. अगर target_id=0 वाला टारगेट जोड़ने के बाद, target_id != 0 के साथ AddTarget का अनुरोध सर्वर को भेजा जाता है, तो सर्वर तुरंत TargetChange::Remove इवेंट के साथ जवाब भेजेगा.

ध्यान दें कि अगर क्लाइंट, बिना आईडी के एक से ज़्यादा AddTarget अनुरोध भेजता है, तो TargetChage.target_ids में दिखाए गए आईडी का क्रम तय नहीं होता है. इसलिए, क्लाइंट को टारगेट आईडी असाइन करने के लिए सर्वर पर निर्भर होने के बजाय, उसे कोई टारगेट आईडी देना चाहिए.

अगर target_id शून्य नहीं है, तो इस स्ट्रीम पर उसी आईडी वाला कोई मौजूदा चालू टारगेट नहीं होना चाहिए.

once

bool

टारगेट के मौजूदा और एक जैसे होने के बाद, उसे हटाया जाना चाहिए या नहीं.

expected_count

Int32Value

रिज़्यूमे टोकन या रीड टाइम पर क्वेरी से पिछली बार मेल खाने वाले दस्तावेज़ों की संख्या.

यह वैल्यू सिर्फ़ तब काम करती है, जब resume_type दिया गया हो. यह वैल्यू मौजूद है और इसमें शून्य से ज़्यादा ऐसे सिग्नल हैं जिनसे क्लाइंट चाहता है कि ExistenceFilter.unchanged_names को रिस्पॉन्स में शामिल किया जाए.

यूनियन फ़ील्ड target_type. सुनने के लिए टारगेट का टाइप. target_type इनमें से सिर्फ़ एक हो सकता है:
query

QueryTarget

क्वेरी के ज़रिए तय किया गया टारगेट.

documents

DocumentsTarget

दस्तावेज़ नामों के समूह से तय किया जाने वाला टारगेट.

यूनियन फ़ील्ड resume_type. सुनना कब शुरू करें.

अगर बताया गया है, तो सिर्फ़ resume_token या read_time के बाद अपडेट किए गए दस्तावेज़ ही दिखाए जाएंगे. ऐसा न करने पर, बदलाव होने से पहले ही मेल खाने वाले सभी दस्तावेज़ लौटा दिए जाते हैं. resume_type इनमें से सिर्फ़ एक हो सकता है:

resume_token

bytes

समान टारगेट के लिए, पिछले TargetChange से रिज़्यूमे टोकन.

किसी दूसरे टारगेट के साथ रेज़्यूमे टोकन का इस्तेमाल नहीं किया जा सकता और यह काम नहीं कर सकता.

read_time

Timestamp

किसी खास read_time के बाद सुनना शुरू करें.

इस समय क्लाइंट को मेल खाने वाले दस्तावेज़ों की स्थिति पता होनी चाहिए.

दस्तावेज़ टारगेट

दस्तावेज़ों के नामों के सेट से तय किया जाने वाला टारगेट.

फ़ील्ड
documents[]

string

वापस पाने के लिए दस्तावेज़ों के नाम. फ़ॉर्मैट: projects/{project_id}/databases/{database_id}/documents/{document_path}. अगर कोई दस्तावेज़ दिए गए database का चाइल्ड रिसॉर्स नहीं है, तो अनुरोध स्वीकार नहीं किया जाएगा. डुप्लीकेट नाम हटा दिए जाएंगे.

क्वेरी-टारगेट

क्वेरी के ज़रिए तय किया गया टारगेट.

फ़ील्ड
parent

string

पैरंट संसाधन का नाम. फ़ॉर्मैट: projects/{project_id}/databases/{database_id}/documents या projects/{project_id}/databases/{database_id}/documents/{document_path}. उदाहरण के लिए: projects/my-project/databases/my-database/documents या projects/my-project/databases/my-database/documents/chatrooms/my-chatroom

यूनियन फ़ील्ड query_type. चलाने के लिए क्वेरी. query_type इनमें से सिर्फ़ एक हो सकता है:
structured_query

StructuredQuery

स्ट्रक्चर्ड क्वेरी.

टारगेट में बदलाव

जिन टारगेट को देखा जा रहा है वे बदल गए हैं.

फ़ील्ड
target_change_type

TargetChangeType

किस तरह का बदलाव किया गया.

target_ids[]

int32

टारगेट के ऐसे टारगेट आईडी जिनमें बदलाव हुआ है.

अगर कोई वैल्यू खाली है, तो यह बदलाव सभी टारगेट पर लागू होता है.

टारगेट आईडी का क्रम तय नहीं है.

cause

Status

अगर लागू हो, तो वह गड़बड़ी जिसकी वजह से यह बदलाव हुआ.

resume_token

bytes

एक टोकन, जिसका इस्तेमाल दिए गए target_ids के लिए स्ट्रीम को फिर से शुरू करने के लिए किया जा सकता है. इसके अलावा, target_ids के खाली होने पर सभी टारगेट के लिए भी टोकन का इस्तेमाल किया जा सकता है.

टारगेट में होने वाले हर बदलाव के लिए सेट नहीं है.

read_time

Timestamp

दिए गए target_ids के लिए एक जैसा read_time (इसे तब छोड़ा जाता है, जब target_ids एक जैसे स्नैपशॉट पर न हो).

हालांकि, इस बात की गारंटी है कि जब भी पूरी स्ट्रीम एक नए तरह के स्नैपशॉट पर पहुंचेगी, तब इसमें target_ids वाला read_time नहीं दिखेगा. ADD, CURRENT, और RESET मैसेज की गारंटी होगी कि (अंतत:) इससे एक नया स्नैपशॉट मिलेगा (जबकि NO_CHANGE और REMOVE मैसेज पर सेट किया जाता है).

हर स्ट्रीम के लिए, read_time में एक ही तरह से बढ़ोतरी होने की संभावना है.

टारगेट के बदलाव का प्रकार

बदलाव किस तरह का है.

एनम्स
NO_CHANGE कोई परिवर्तन नहीं हुआ. सिर्फ़ अपडेट किए गए resume_token को भेजने के लिए इस्तेमाल किया जाता है.
ADD लक्ष्य जोड़ दिए गए हैं.
REMOVE टारगेट हटा दिए गए हैं.
CURRENT

स्ट्रीम में टारगेट जोड़े जाने से पहले किए गए सभी बदलाव, टारगेट में दिखते हैं.

इसे read_time के बाद या उसके साथ भेजा जाएगा, जो टारगेट जोड़े जाने के समय से ज़्यादा या उसके बराबर होगा.

अगर लिखने के बाद पढ़ने वाले सिमैंटिक की ज़रूरत हो, तो लिसनर इस बदलाव का इंतज़ार कर सकते हैं.

RESET

लक्ष्य रीसेट कर दिए गए हैं और बाद के बदलावों में लक्ष्यों के लिए नई शुरुआती स्थिति दिखेगी.

शुरुआती स्थिति पूरी होने के बाद, CURRENT लौटाया जाएगा, भले ही टारगेट को पहले CURRENT के तौर पर दिखाया गया हो.

लेन-देन के विकल्प

नया लेन-देन करने के विकल्प.

फ़ील्ड
यूनियन फ़ील्ड mode. लेन-देन का मोड. mode इनमें से सिर्फ़ एक हो सकता है:
read_only

ReadOnly

ट्रांज़ैक्शन का इस्तेमाल, सिर्फ़ पढ़ने से जुड़ी कार्रवाइयों के लिए किया जा सकता है.

read_write

ReadWrite

ट्रांज़ैक्शन का इस्तेमाल रीड और राइट, दोनों तरह की कार्रवाइयों के लिए किया जा सकता है.

केवल पठनीय

ऐसे लेन-देन के विकल्प जिनका इस्तेमाल सिर्फ़ दस्तावेज़ों को पढ़ने के लिए किया जा सकता है.

फ़ील्ड
यूनियन फ़ील्ड consistency_selector. इस लेन-देन के लिए कंसिस्टेंसी मोड. इस नीति को सेट न करने पर, डिफ़ॉल्ट रूप से एक जैसा अनुभव मिलता है. consistency_selector इनमें से सिर्फ़ एक हो सकता है:
read_time

Timestamp

दिए गए समय पर दस्तावेज़ को पढ़ता है.

यह पिछले एक घंटे के अंदर का सटीक टाइमस्टैंप होना चाहिए या अगर पॉइंट-इन-टाइम रिकवरी चालू है, तो यह पिछले सात दिनों में पूरे मिनट का टाइमस्टैंप भी हो सकता है.

ReadWrite

ऐसे लेन-देन के विकल्प जिनका इस्तेमाल दस्तावेज़ों को पढ़ने और उनमें बदलाव करने के लिए किया जा सकता है.

Firestore, लेन-देन के रीड-राइट को बनाने के लिए, तीसरे पक्ष के पुष्टि करने के अनुरोधों की अनुमति नहीं देता.

फ़ील्ड
retry_transaction

bytes

फिर से कोशिश करने के लिए, कोई पेमेंट नहीं किया जा सकता.

अपडेट दस्तावेज़ अनुरोध

Firestore.UpdateDocument का अनुरोध.

फ़ील्ड
document

Document

ज़रूरी है. अपडेट किया गया दस्तावेज़. अगर दस्तावेज़ पहले से मौजूद नहीं है, तो उसे बनाया जाता है.

update_mask

DocumentMask

अपडेट किए जाने वाले फ़ील्ड. मास्क के किसी भी फ़ील्ड पाथ में रिज़र्व किया गया नाम नहीं हो सकता.

अगर दस्तावेज़ सर्वर पर मौजूद है और मास्क में रेफ़र किए गए फ़ील्ड नहीं हैं, तो उनमें कोई बदलाव नहीं किया जाता. मास्क में रेफ़र किए गए फ़ील्ड, लेकिन इनपुट दस्तावेज़ में मौजूद नहीं हैं, सर्वर पर मौजूद दस्तावेज़ से मिटा दिए जाते हैं.

mask

DocumentMask

लौटाए जाने वाले फ़ील्ड. अगर यह नीति सेट नहीं है, तो सभी फ़ील्ड दिखाता है.

अगर दस्तावेज़ में कोई ऐसा फ़ील्ड है जो इस मास्क में मौजूद नहीं है, तो वह फ़ील्ड जवाब में नहीं लौटाया जाएगा.

current_document

Precondition

दस्तावेज़ पर एक वैकल्पिक पहले से तय शर्त. अगर इसे सेट किया जाता है और टारगेट दस्तावेज़ से पूरा नहीं किया जाता है, तो अनुरोध रद्द हो जाएगा.

वैल्यू

ऐसा मैसेज जिसमें इस्तेमाल की जा सकने वाली किसी भी वैल्यू को शामिल किया जा सकता है.

फ़ील्ड
यूनियन फ़ील्ड value_type. वैल्यू सेट होना ज़रूरी है. value_type इनमें से सिर्फ़ एक हो सकता है:
null_value

NullValue

शून्य मान.

boolean_value

bool

एक बूलियन वैल्यू.

integer_value

int64

एक इंटीजर वैल्यू.

double_value

double

डबल वैल्यू.

timestamp_value

Timestamp

टाइमस्टैंप की वैल्यू.

सटीक रूप से सिर्फ़ माइक्रोसेकंड में. स्टोर किए जाने पर, किसी भी अतिरिक्त सटीक जानकारी को पूर्णांक में बदल दिया जाता है.

string_value

string

स्ट्रिंग की वैल्यू.

UTF-8 के तौर पर दिखाई गई स्ट्रिंग का साइज़ 1 एमबी - 89 बाइट से ज़्यादा नहीं होना चाहिए. क्वेरी में UTF-8 प्रज़ेंटेशन की सिर्फ़ पहली 1,500 बाइट को ध्यान में रखा जाता है.

bytes_value

bytes

बाइट वैल्यू.

1 एमबी - 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

किसी दस्तावेज़ में ट्रांसफ़ॉर्मेशन लागू करता है.

लिखने का अनुरोध

Firestore.Write का अनुरोध.

पहले अनुरोध से कोई स्ट्रीम बनाई जाती है या किसी टोकन से मौजूदा स्ट्रीम को फिर से शुरू किया जाता है.

नई स्ट्रीम बनाते समय सर्वर, अगले अनुरोध में इस्तेमाल करने के लिए रिस्पॉन्स के तौर पर सिर्फ़ आईडी और टोकन वाला रिस्पॉन्स देता है.

किसी स्ट्रीम को फिर से शुरू करते समय, सर्वर सबसे पहले दिए गए टोकन के बाद किसी भी जवाब को स्ट्रीम करता है. इसके बाद, अगले अनुरोध में इस्तेमाल करने के लिए, सिर्फ़ एक अप-टू-डेट टोकन वाला रिस्पॉन्स स्ट्रीम करता है.

फ़ील्ड
database

string

ज़रूरी है. डेटाबेस का नाम. फ़ॉर्मैट: projects/{project_id}/databases/{database_id}. ऐसा करना सिर्फ़ पहले मैसेज में ज़रूरी है.

stream_id

string

फिर से शुरू करने के लिए राइट स्ट्रीम का आईडी. इसे सिर्फ़ पहले मैसेज में सेट किया जा सकता है. खाली छोड़ देने पर, एक नई लेखन स्ट्रीम बनाई जाएगी.

writes[]

Write

लागू की जाने वाली जानकारी.

हमेशा अपने-आप और क्रम से लगाए जाते हैं. पहले अनुरोध पर यह फ़ील्ड खाली होना चाहिए. यह फ़ील्ड पिछले अनुरोध पर खाली हो सकता है. अन्य सभी अनुरोधों के लिए यह फ़ील्ड खाली नहीं होना चाहिए.

stream_token

bytes

स्ट्रीम टोकन, जिसे पहले सर्वर ने भेजा था.

क्लाइंट को इस फ़ील्ड को सबसे हाल के WriteResponse से मिले टोकन के हिसाब से सेट करना चाहिए. इससे पता चलता है कि क्लाइंट को इस टोकन तक ही जवाब मिल गए हैं. यह टोकन भेजने के बाद, हो सकता है कि पुराने टोकन अब इस्तेमाल न किए जा सकें.

अगर कई रिस्पॉन्स को स्वीकार नहीं किया गया है, तो सर्वर स्ट्रीम को बंद कर सकता है.

नई स्ट्रीम बनाते समय, इस फ़ील्ड को सेट न करें. किसी स्ट्रीम को फिर से शुरू करने के लिए, इस फ़ील्ड के साथ stream_id फ़ील्ड को सेट करें.

नई स्ट्रीम बनाते समय, इस फ़ील्ड को सेट न करें.

labels

map<string, string>

लिखने के इस अनुरोध से जुड़े लेबल.

जवाब लिखें

Firestore.Write का जवाब.

फ़ील्ड
stream_id

string

स्ट्रीम का आईडी. इसे सिर्फ़ पहले मैसेज पर सेट करें, जब नई स्ट्रीम बनाई गई हो.

stream_token

bytes

ऐसा टोकन जो स्ट्रीम में इस रिस्पॉन्स की पोज़िशन दिखाता है. इस समय स्ट्रीम को फिर से शुरू करने के लिए, क्लाइंट इसका इस्तेमाल कर सकता है.

यह फ़ील्ड हमेशा सेट रहता है.

write_results[]

WriteResult

लिखे गए शब्दों को लागू करने का नतीजा.

लिखने का यह नतीजा, अनुरोध में किए गए लिखने के नतीजे से मेल खाता है.

commit_time

Timestamp

गतिविधि तय करने का समय. read_time के बराबर या उससे ज़्यादा वैल्यू वाला कोई भी टेक्स्ट, लिखने के असर के बारे में बताता है.

लिखने के नतीजे

बदलाव लागू करने का नतीजा.

फ़ील्ड
update_time

Timestamp

राइट लागू करने के बाद दस्तावेज़ को आखिरी बार अपडेट करने का समय. delete के बाद सेट नहीं है.

अगर इस बदलाव से दस्तावेज़ वाकई में नहीं बदला गया है, तो यह पिछला updated_time होगा.

transform_results[]

Value

हर DocumentTransform.FieldTransform को उसी क्रम में लागू करने के नतीजे.