Package google.firestore.v1beta1

इंडेक्स

Firestore

Cloud Firestore सेवा.

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

BatchGetDocuments

rpc BatchGetDocuments(BatchGetDocumentsRequest) returns (BatchGetDocumentsResponse)

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

इस बात की कोई गारंटी नहीं है कि दस्तावेज़ उसी क्रम में दिखेंगे जैसे उन्हें दिखाने का अनुरोध किया गया था.

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

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

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

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

BatchWrite

rpc BatchWrite(BatchWriteRequest) returns (BatchWriteResponse)

लिखने की कार्रवाइयों के बैच को लागू किया जाता है.

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

अगर आपको ऐटमिकल तौर पर लिखने का सेट चाहिए, तो Commit का इस्तेमाल करें.

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

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

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

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

BeginTransaction

rpc BeginTransaction(BeginTransactionRequest) returns (BeginTransactionResponse)

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

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

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

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

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

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

rpc Commit(CommitRequest) returns (CommitResponse)

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

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

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

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

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

CreateDocument

rpc CreateDocument(CreateDocumentRequest) returns (Document)

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

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

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

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

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

DeleteDocument

rpc DeleteDocument(DeleteDocumentRequest) returns (Empty)

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

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

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

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

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

GetDocument

rpc GetDocument(GetDocumentRequest) returns (Document)

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

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

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

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

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

ListCollectionIds

rpc ListCollectionIds(ListCollectionIdsRequest) returns (ListCollectionIdsResponse)

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

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

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

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

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

ListDocuments

rpc ListDocuments(ListDocumentsRequest) returns (ListDocumentsResponse)

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

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

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

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

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

सुनना

rpc Listen(ListenRequest) returns (ListenResponse)

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

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

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

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

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

PartitionQuery

rpc PartitionQuery(PartitionQueryRequest) returns (PartitionQueryResponse)

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

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

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

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

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

रोलबैक

rpc Rollback(RollbackRequest) returns (Empty)

लेन-देन को रोल बैक करता है.

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

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

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

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

RunAggregationQuery

rpc RunAggregationQuery(RunAggregationQueryRequest) returns (RunAggregationQueryResponse)

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

यह एपीआई, 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

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

RunQuery

rpc RunQuery(RunQueryRequest) returns (RunQueryResponse)

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

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

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

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

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

UpdateDocument

rpc UpdateDocument(UpdateDocumentRequest) returns (Document)

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

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

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

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

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

लिखें

rpc Write(WriteRequest) returns (WriteResponse)

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

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

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

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

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

AggregationResult

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

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

फ़ील्ड
aggregate_fields

map<string, Value>

एग्रीगेशन फ़ंक्शन से मिलने वाला नतीजा, जैसे: COUNT(*) AS total_docs.

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

ArrayValue

अरे वैल्यू.

फ़ील्ड
values[]

Value

अरे में मौजूद वैल्यू.

BatchGetDocumentsRequest

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

फ़ील्ड
database

string

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

documents[]

string

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

mask

DocumentMask

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

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

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

bytes

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

new_transaction

TransactionOptions

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

read_time

Timestamp

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

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

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

लेख लागू करने का नतीजा.

i-वां लिखने का यह नतीजा, अनुरोध में मौजूद i-th राइट के हिसाब से होता है.

status[]

Status

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

i-th लिखने की यह स्थिति, अनुरोध में मौजूद i-th राइट के हिसाब से होती है.

BeginTransactionRequest

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

फ़ील्ड
database

string

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

options

TransactionOptions

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

BeginTransactionResponse

Firestore.BeginTransaction के लिए रिस्पॉन्स.

फ़ील्ड
transaction

bytes

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

BitSequence

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

bitmap बाइट कलेक्शन के हर बाइट में, क्रम के आठ बिट सेव होते हैं. आखिरी बाइट इसका अपवाद है, जिसमें आठ या उससे कम बिट स्टोर हो सकते हैं. 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 के बीच होनी चाहिए.

BloomFilter

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

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

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

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

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

फ़ील्ड
bits

BitSequence

ब्लूम फ़िल्टर डेटा.

hash_count

int32

एल्गोरिदम में इस्तेमाल किए गए हैश की संख्या.

CommitRequest

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

फ़ील्ड
database

string

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

writes[]

Write

लागू करने के लिए लेख.

इसे हमेशा एटॉमिक तरीके से और क्रम में लागू किया जाता है.

transaction

bytes

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

CommitResponse

Firestore.Commit के लिए रिस्पॉन्स.

फ़ील्ड
write_results[]

WriteResult

लेख लागू करने का नतीजा.

i-वां लिखने का यह नतीजा, अनुरोध में मौजूद i-th राइट के हिसाब से होता है.

commit_time

Timestamp

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

CreateDocumentRequest

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

फ़ील्ड
parent

string

ज़रूरी है. पैरंट रिसॉर्स. उदाहरण के लिए: projects/{project_id}/databases/{database_id}/documents या projects/{project_id}/databases/{database_id}/documents/chatrooms/{chatroom_id}

collection_id

string

ज़रूरी है. सूची में मौजूद, parent से जुड़ा कलेक्शन आईडी. उदाहरण के लिए: chatrooms.

document_id

string

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

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

document

Document

ज़रूरी है. वह दस्तावेज़ जिसे बनाना है. name सेट नहीं होनी चाहिए.

mask

DocumentMask

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

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

कर्सर

क्वेरी के नतीजे के सेट में कोई स्थिति.

फ़ील्ड
values[]

Value

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

इसमें क्लॉज़ के हिसाब से क्रम में तय की गई वैल्यू से कम वैल्यू हो सकती हैं.

before

bool

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

DeleteDocumentRequest

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

फ़ील्ड
name

string

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

current_document

Precondition

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

दस्तावेज़

Firestore दस्तावेज़.

1 एमआईबी से चार बाइट के बीच होना चाहिए.

फ़ील्ड
name

string

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

fields

map<string, Value>

create_time

Timestamp

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

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

update_time

Timestamp

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

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

DocumentChange

Document बदल गया है.

यह हटाए जाने के साथ-साथ कई writes के नतीजे भी हो सकते हैं, जिनकी वजह से आखिर में Document के लिए एक नई वैल्यू तैयार हुई.

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

फ़ील्ड
document

Document

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

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

target_ids[]

int32

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

removed_target_ids[]

int32

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

DocumentDelete

Document मिटाया गया.

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

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

फ़ील्ड
document

string

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

removed_target_ids[]

int32

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

read_time

Timestamp

पढ़े जाने का वह टाइमस्टैंप जब डेटा को मिटाए जाने का पता चला था.

मिटाए गए में से commit_time के बराबर या इससे ज़्यादा.

DocumentMask

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

फ़ील्ड
field_paths[]

string

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

DocumentRemove

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

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

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

फ़ील्ड
document

string

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

removed_target_ids[]

int32

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

read_time

Timestamp

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

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

DocumentTransform

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

फ़ील्ड
document

string

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

field_transforms[]

FieldTransform

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

FieldTransform

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

फ़ील्ड
field_path

string

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

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

ServerValue

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

increment

Value

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

यह एक पूर्णांक या डबल वैल्यू होनी चाहिए. अगर फ़ील्ड, पूर्णांक या डबल नहीं है या फ़ील्ड मौजूद नहीं है, तो ट्रांसफ़ॉर्मेशन ऐक्शन, फ़ील्ड को दी गई वैल्यू पर सेट कर देगा. अगर दी गई वैल्यू या मौजूदा फ़ील्ड की वैल्यू, दोनों में से कोई भी वैल्यू दोगुनी हो, तो दोनों वैल्यू को डबल वैल्यू माना जाएगा. डबल अंकगणित और डबल वैल्यू को दिखाने से, आईईईई 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 शून्य मान होगा.

ServerValue

सर्वर के ज़रिए कैलकुलेट की जाने वाली वैल्यू.

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

ExecutionStats

क्वेरी के लिए एक्ज़ीक्यूशन के आंकड़े.

फ़ील्ड
results_returned

int64

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

execution_duration

Duration

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

read_operations

int64

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

debug_stats

Struct

क्वेरी के निष्पादन से आंकड़ों को डीबग करना. ध्यान दें कि Firestore के बेहतर होने पर, डीबग करने के आंकड़ों में बदलाव हो सकता है. It could include: { "indexes_entries_scanned": "1000", "documents_scanned": "20", "billing_details" : { "documents_billable": "20", "index_entries_billable": "1000", "min_query_cost": "0" } }

ExistenceFilter

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

फ़ील्ड
target_id

int32

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

count

int32

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

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

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

unchanged_names

BloomFilter

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

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

ExplainMetrics

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

फ़ील्ड
plan_summary

PlanSummary

क्वेरी के प्लानिंग फ़ेज़ की जानकारी.

execution_stats

ExecutionStats

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

ExplainOptions

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

फ़ील्ड
analyze

bool

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

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

सही होने पर, क्वेरी को प्लान करके लागू किया जाएगा. साथ ही, इससे क्वेरी के पूरे नतीजे मिलेंगे. साथ ही, प्लान बनाने और उसे लागू करने की मेट्रिक के बारे में भी पता चलेगा.

GetDocumentRequest

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

फ़ील्ड
name

string

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

mask

DocumentMask

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

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

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

bytes

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

read_time

Timestamp

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

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

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

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

ListDocumentsRequest

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

फ़ील्ड
parent

string

ज़रूरी है. पैरंट रिसॉर्स का नाम. फ़ॉर्मैट: projects/{project_id}/databases/{database_id}/documents या projects/{project_id}/databases/{database_id}/documents/{document_path}.

उदाहरण के लिए: projects/my-project/databases/my-database/documents या projects/my-project/databases/my-database/documents/chatrooms/my-chatroom

collection_id

string

ज़रूरी नहीं. सूची में मौजूद, parent से जुड़ा कलेक्शन आईडी.

उदाहरण के लिए: chatrooms या messages.

ऐसा करना ज़रूरी नहीं है. अगर इसे उपलब्ध नहीं कराया जाता, तो Firestore दिए गए parent के तहत सभी कलेक्शन के दस्तावेज़ों की सूची बना देगा.

page_size

int32

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

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

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

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

ListenRequest

Firestore.Listen का अनुरोध

फ़ील्ड
database

string

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

labels

map<string, string>

इस टारगेट से जुड़े लेबल.

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

Target

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

remove_target

int32

इस स्ट्रीम से हटाए जाने वाले टारगेट का आईडी.

ListenResponse

Firestore.Listen के लिए रिस्पॉन्स.

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

TargetChange

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

document_change

DocumentChange

Document बदल गया है.

document_delete

DocumentDelete

Document मिटाया गया.

document_remove

DocumentRemove

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

filter

ExistenceFilter

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

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

MapValue

कोई मैप वैल्यू.

फ़ील्ड
fields

map<string, Value>

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

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

PartitionQueryRequest

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

फ़ील्ड
parent

string

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

partition_count

int64

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

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

page_token

string

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

उदाहरण के लिए, 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 दिखाएगा. पार्टिशन क्वेरी को दूसरी कॉल करने पर 2 पार्टीशन तक दिखाई देंगे, ताकि partition_count में दिए गए कुल 10 सेगमेंट को पूरा किया जा सके.

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

StructuredQuery

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

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

Timestamp

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

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

PartitionQueryResponse

Firestore.PartitionQuery के लिए रिस्पॉन्स.

फ़ील्ड
partitions[]

Cursor

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

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

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

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

next_page_token

string

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

PlanSummary

क्वेरी के प्लानिंग फ़ेज़ की जानकारी.

फ़ील्ड
indexes_used[]

Struct

क्वेरी के लिए चुने गए इंडेक्स. For example: [ {"query_scope": "Collection", "properties": "(foo ASC, name ASC)"}, {"query_scope": "Collection", "properties": "(bar ASC, name ASC)"} ]

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

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

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

bool

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

update_time

Timestamp

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

RollbackRequest

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

फ़ील्ड
database

string

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

transaction

bytes

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

RunAggregationQueryRequest

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

फ़ील्ड
parent

string

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

explain_options

ExplainOptions

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

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

StructuredAggregationQuery

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

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

bytes

पहले से चालू ट्रांज़ैक्शन में एग्रीगेशन चलाएं.

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

new_transaction

TransactionOptions

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

नया लेन-देन आईडी, स्ट्रीम में पहले जवाब के तौर पर दिखाया जाएगा.

read_time

Timestamp

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

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

RunAggregationQueryResponse

Firestore.RunAggregationQuery के लिए रिस्पॉन्स.

फ़ील्ड
result

AggregationResult

एग्रीगेशन का सिर्फ़ एक नतीजा.

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

transaction

bytes

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

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

read_time

Timestamp

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

StructuredAggregationQuery

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 दिखाता है. इनफ़िनिटी मैथ IEEE-754 के मानकों का पालन करता है.

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

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

फ़ील्ड
field

FieldReference

वह फ़ील्ड जिसके लिए डेटा इकट्ठा करना है.

गिनती

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

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

फ़ील्ड
up_to

Int64Value

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

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

अनिर्दिष्ट का अर्थ कोई सीमा नहीं है.

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

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

ज़रूरी है:

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

कुल योग

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

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

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

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

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

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

फ़ील्ड
field

FieldReference

वह फ़ील्ड जिसके लिए डेटा इकट्ठा करना है.

StructuredQuery

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__ पर कोई ऑर्डर तय नहीं किया गया है, तो उसे डिफ़ॉल्ट रूप से जोड़ा जाता है.

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

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

Cursor

नतीजे में किसी पोज़िशन का संभावित प्रीफ़िक्स, जिससे क्वेरी शुरू होती है.

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

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

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

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

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

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

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

ज़रूरी है:

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

Cursor

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

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

ज़रूरी है:

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

int32

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

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

ज़रूरी है:

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

Int32Value

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

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

ज़रूरी है:

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

FindNearest

ज़रूरी नहीं. एक संभावित नज़दीकी पड़ोसी खोज.

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

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

CollectionSelector

संग्रह का चुनाव, जैसे कि messages as m1.

फ़ील्ड
collection_id

string

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

all_descendants

bool

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

CompositeFilter

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

फ़ील्ड
op

Operator

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

filters[]

Filter

जोड़े जाने वाले फ़िल्टर की सूची.

ज़रूरी है:

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

ऑपरेटर

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

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

डायरेक्शन

क्रम से लगाने की दिशा.

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

FieldFilter

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

फ़ील्ड
field

FieldReference

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

op

Operator

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

value

Value

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

ऑपरेटर

फ़ील्ड फ़िल्टर करने वाला ऑपरेटर.

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

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

ज़रूरी है:

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

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

ज़रूरी है:

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

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

ज़रूरी है:

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

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

ज़रूरी है:

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

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

ज़रूरी है:

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

दिया गया field, दिए गए अरे में कम से कम एक वैल्यू के बराबर है.

ज़रूरी है:

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

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

ज़रूरी है:

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

field का मान, दिए गए अरे में नहीं है.

ज़रूरी है:

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

FieldReference

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

फ़ील्ड
field_path

string

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

ज़रूरी है:

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

फ़िल्टर करें

एक फ़िल्टर.

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

CompositeFilter

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

field_filter

FieldFilter

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

unary_filter

UnaryFilter

सिर्फ़ एक आर्ग्युमेंट लेने वाला फ़िल्टर.

FindNearest

'सबसे नज़दीकी पड़ोसी' के लिए खोज कॉन्फ़िगरेशन.

फ़ील्ड
vector_field

FieldReference

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

query_vector

Value

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

distance_measure

DistanceMeasure

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

limit

Int32Value

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

DistanceMeasure

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

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

क्रम

फ़ील्ड पर मौजूद कोई ऑर्डर.

फ़ील्ड
field

FieldReference

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

direction

Direction

ऑर्डर करने के लिए निर्देश. डिफ़ॉल्ट वैल्यू ASCENDING होती है.

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

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

फ़ील्ड
fields[]

FieldReference

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

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

UnaryFilter

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

फ़ील्ड
op

Operator

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

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

FieldReference

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

ऑपरेटर

एक सिंगल ऑपरेटर.

Enums
OPERATOR_UNSPECIFIED नहीं बताया गया है इस वैल्यू का इस्तेमाल नहीं किया जाना चाहिए.
IS_NAN दिया गया field, NaN के बराबर है.
IS_NULL दिया गया field, NULL के बराबर है.
IS_NOT_NAN

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

ज़रूरी है:

  • कोई अन्य NOT_EQUAL, NOT_IN, IS_NOT_NULL या IS_NOT_NAN नहीं.
  • वह field order_by में पहले आता है.
IS_NOT_NULL

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

ज़रूरी है:

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

टारगेट

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

फ़ील्ड
target_id

int32

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

अगर target_id की वैल्यू 0 है या इसकी जानकारी नहीं दी गई है, तो सर्वर इस टारगेट के लिए एक आईडी असाइन करेगा और उसे TargetChange::ADD के इवेंट में दिखाएगा. target_id=0 वाला टारगेट जोड़ने के बाद, बाद के सभी टारगेट में भी target_id=0 होना चाहिए. अगर 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 के बाद सुनना शुरू करें.

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

DocumentsTarget

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

फ़ील्ड
documents[]

string

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

QueryTarget

किसी क्वेरी से तय किया गया टारगेट.

फ़ील्ड
parent

string

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

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

StructuredQuery

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

TargetChange

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

फ़ील्ड
target_change_type

TargetChangeType

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

target_ids[]

int32

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

खाली होने पर, बदलाव सभी टारगेट पर लागू होता है.

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

cause

Status

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

resume_token

bytes

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

हर बार टारगेट बदलाव पर सेट नहीं है.

read_time

Timestamp

दिए गए target_ids के लिए एक जैसा read_time (जब target_ids एक जैसे स्नैपशॉट में न हों).

जब भी पूरी स्ट्रीम के लिए एक नया स्नैपशॉट मिलेगा, तब स्ट्रीम का target_ids खाली होने पर भी read_time भेजा जाएगा. मैसेज जोड़ें, मौजूदा, और रीसेट करें की गारंटी दी जाती है (आखिरकार) एक नया स्नैपशॉट मिलेगा (जबकि NO_CHANGE और REMOVE मैसेज नहीं मिलेंगे).

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

TargetChangeType

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

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

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

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

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

RESET

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

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

TransactionOptions

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

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

ReadOnly

लेन-देन का इस्तेमाल सिर्फ़ रीड ऑपरेशन के लिए किया जा सकता है.

read_write

ReadWrite

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

ReadOnly

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

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

Timestamp

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

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

ReadWrite

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

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

फ़ील्ड
retry_transaction

bytes

फिर से कोशिश करने के लिए, लेन-देन किया जा सकता है. हालांकि, ऐसा करना ज़रूरी नहीं है.

UpdateDocumentRequest

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

फ़ील्ड
document

Document

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

update_mask

DocumentMask

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

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

mask

DocumentMask

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

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

current_document

Precondition

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

वैल्यू

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

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

NullValue

शून्य वैल्यू.

boolean_value

bool

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

integer_value

int64

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

double_value

double

डबल वैल्यू.

timestamp_value

Timestamp

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

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

string_value

string

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

UTF-8 के तौर पर दिखाई जाने वाली स्ट्रिंग का साइज़, 1 MiB - 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

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

WriteRequest

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

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

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

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

फ़ील्ड
database

string

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

stream_id

string

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

writes[]

Write

लागू करने के लिए लेख.

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

stream_token

bytes

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

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

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

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

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

labels

map<string, string>

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

WriteResponse

Firestore.Write के लिए रिस्पॉन्स.

फ़ील्ड
stream_id

string

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

stream_token

bytes

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

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

write_results[]

WriteResult

लेख लागू करने का नतीजा.

i-वां लिखने का यह नतीजा, अनुरोध में मौजूद i-th राइट के हिसाब से होता है.

commit_time

Timestamp

वह समय जब कार्रवाई हुई. read_time के बराबर या उससे ज़्यादा वैल्यू वाले टेक्स्ट को पढ़ने से, लिखने का असर दिख सकता है.

WriteResult

राइट लागू करने का नतीजा.

फ़ील्ड
update_time

Timestamp

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

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

transform_results[]

Value

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