Cloud Firestore REST एपीआई का इस्तेमाल करें

Cloud Firestore का इस्तेमाल करने का सबसे आसान तरीका, किसी एक नेटिव क्लाइंट लाइब्रेरी का इस्तेमाल करना है. हालांकि, कुछ मामलों में सीधे तौर पर REST API को कॉल करना फ़ायदेमंद होता है.

REST API का इस्तेमाल इन कामों के लिए किया जा सकता है:

  • सीमित संसाधनों वाले एनवायरमेंट से Cloud Firestore को ऐक्सेस करना, जैसे, इंटरनेट ऑफ़ थिंग्स (आईओटी) डिवाइस, जिस पर पूरी तरह से क्लाइंट काम करता हो लाइब्रेरी उपलब्ध नहीं है.
  • डेटाबेस को अपने-आप व्यवस्थित करना या पूरा डेटाबेस मेटाडेटा हासिल करना.

अगर आपको किसी gRPC-समर्थित भाषा है, तो REST API के बजाय RPC API का इस्तेमाल करें.

पुष्टि करना और अनुमति देना

पुष्टि करने के लिए, Cloud Firestore REST API, पुष्टि करने के लिए इनमें से किसी एक Firebase Authentication आईडी टोकन या Google Identity OAuth 2.0 टोकन. आपका दिया गया टोकन आपके अनुरोध के प्राधिकरण को प्रभावित करता है:

  • अपने ऐप्लिकेशन के उपयोगकर्ताओं के अनुरोधों की पुष्टि करने के लिए, Firebase आईडी टोकन का इस्तेमाल करें. इन अनुरोधों के लिए, Cloud Firestore Cloud Firestore Security Rules, ताकि यह पता लगाया जा सके कि अनुरोध को अनुमति है.

  • Google Identity OAuth 2.0 टोकन और सेवा खाता जैसे कि डेटाबेस एडमिन के लिए अनुरोध. इन अनुरोधों के लिए, Cloud Firestore का इस्तेमाल पहचान और ऐक्सेस मैनेजमेंट (आईएएम) का इस्तेमाल करके, यह पता लगाना कि अनुरोध को अनुमति दी गई है.

Firebase आईडी टोकन के साथ काम करना

Firebase आईडी टोकन पाने के दो तरीके हैं:

उपयोगकर्ता का Firebase आईडी टोकन हासिल करके, उपयोगकर्ता की ओर से अनुरोध किए जा सकते हैं.

Firebase आईडी टोकन से पुष्टि किए गए अनुरोधों और पुष्टि नहीं किए गए अनुरोधों के लिए, Cloud Firestore आपके Cloud Firestore Security Rules का इस्तेमाल करके यह तय करता है कि अनुरोध को अनुमति दी गई है या नहीं.

Google Identity OAuth 2.0 टोकन के साथ काम करना

ऐक्सेस टोकन जनरेट करने के लिए, सेवा खाता Google API क्लाइंट लाइब्रेरी या फिर पासवर्ड का इस्तेमाल करके, सर्वर से सर्वर ऐप्लिकेशन के लिए, OAuth 2.0 का इस्तेमाल करना. आपने लोगों तक पहुंचाया मुफ़्त में gcloud कमांड-लाइन टूल और आदेश gcloud auth application-default print-access-token.

Cloud Firestore REST एपीआई:

  • https://www.googleapis.com/auth/datastore

अगर अपने अनुरोधों की पुष्टि, सेवा खाते और Google Identity की मदद से की जाती है OAuth 2.0 टोकन, Cloud Firestore यह मानता है कि आपके अनुरोध उनकी ओर से काम करते हैं व्यक्तिगत उपयोगकर्ता के बजाय आपके ऐप्लिकेशन को डाउनलोड करने की कोशिश करते हैं. Cloud Firestore अनुमति देता है ये अनुरोध आपके सुरक्षा नियमों को अनदेखा करने के लिए हैं. इसके बजाय, Cloud Firestore यह पता लगाने के लिए IAM का इस्तेमाल करता है कि अनुरोध को अनुमति दी गई है या नहीं.

सेवा खातों के ऐक्सेस को कंट्रोल करने के लिए, आईएएम की Cloud Firestore भूमिकाएं.

ऐक्सेस टोकन से पुष्टि करना

Firebase आईडी टोकन या Google Identity OAuth 2.0 टोकन पाने के बाद, इसे Cloud Firestore एंडपॉइंट पर Authorization पर सेट किए गए Authorization हेडर के तौर पर पास करें.

REST कॉल करें

सभी REST API एंडपॉइंट, बेस यूआरएल https://firestore.googleapis.com/v1/ के तहत मौजूद होते हैं.

प्रोजेक्ट YOUR_PROJECT_ID के कलेक्शन cities में मौजूद, आईडी LA वाले दस्तावेज़ का पाथ बनाने के लिए, आपको इस स्ट्रक्चर का इस्तेमाल करना होगा.

/projects/YOUR_PROJECT_ID/databases/(default)/documents/cities/LA

इस पाथ के साथ इंटरैक्ट करने के लिए, इसे बेस एपीआई यूआरएल के साथ जोड़ें.

https://firestore.googleapis.com/v1/projects/YOUR_PROJECT_ID/databases/(default)/documents/cities/LA

REST API के साथ प्रयोग करने का सबसे अच्छा तरीका, API एक्सप्लोरर का इस्तेमाल करना है. यह Google Identity के OAuth 2.0 टोकन को अपने-आप जनरेट करता है और आपको एपीआई की जांच करने की सुविधा देता है.

तरीके

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

v1.projects.databases.documents

उन दस्तावेज़ों पर CRUD से जुड़ी कार्रवाइयां करें जो डेटा जोड़ने या डेटा पाने से जुड़ी गाइड.

v1.projects.databases.collectionGroups.indexes

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

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

गड़बड़ी कोड

जब कोई Cloud Firestore अनुरोध पूरा हो जाता है, तो Cloud Firestore एपीआई, एचटीटीपी 200 OK स्टेटस कोड और अनुरोध किया गया डेटा दिखाता है. जब कोई अनुरोध पूरा नहीं होता है, तो Cloud Firestore एपीआई एचटीटीपी 4xx या 5xx स्टेटस कोड और इसके बारे में जानकारी के साथ रिस्पॉन्स गड़बड़ी को ठीक करें.

यहां दी गई टेबल में, गड़बड़ी के हर कोड के लिए सुझाई गई कार्रवाइयों की सूची दी गई है. ये कोड लागू होते हैं Cloud Firestore REST और RPC एपीआई पर अपग्रेड किया जाएगा. Cloud Firestore SDK टूल और क्लाइंट लाइब्रेरी, शायद ये गड़बड़ी कोड न दिखाएं.

कैननिकल गड़बड़ी कोड ब्यौरा सुझाई गई कार्रवाई
ABORTED यह अनुरोध, किसी दूसरे अनुरोध से मेल नहीं खा रहा है. बिना लेन-देन वाले कमिट के लिए:
अनुरोध को फिर से आज़माएं या विरोध को कम करने के लिए, अपने डेटा मॉडल का स्ट्रक्चर फिर से बनाएं.

लेन-देन के अनुरोधों के लिए:
पूरे लेन-देन को फिर से आज़माएं या विरोध को कम करने के लिए, अपने डेटा मॉडल का स्ट्रक्चर फिर से बनाएं.
ALREADY_EXISTS अनुरोध में ऐसा दस्तावेज़ बनाने की कोशिश की गई जो पहले से मौजूद है. समस्या को ठीक किए बिना फिर से कोशिश न करें.
DEADLINE_EXCEEDED Cloud Firestore सर्वर, अनुरोध को हैंडल कर रहा है. यह समयसीमा तय समयसीमा से ज़्यादा है. एक्सपोनेन्शियल बैकऑफ़ का इस्तेमाल करके फिर से कोशिश करें.
FAILED_PRECONDITION अनुरोध, पहले से तय की गई एक शर्त के मुताबिक नहीं है. उदाहरण के लिए, क्वेरी करने के लिए किसी ऐसे इंडेक्स की ज़रूरत पड़ सकती है जिसे अब तक तय न किया गया हो. पहले से तय की गई शर्त के लिए गड़बड़ी के जवाब में मैसेज फ़ील्ड देखें. समस्या को ठीक किए बिना फिर से कोशिश न करें.
INTERNAL Cloud Firestore सर्वर ने गड़बड़ी का मैसेज दिया. इस अनुरोध को एक से ज़्यादा बार न करें.
INVALID_ARGUMENT अनुरोध पैरामीटर में एक अमान्य मान शामिल है. गड़बड़ी के रिस्पॉन्स में अमान्य वैल्यू के लिए मैसेज फ़ील्ड देखें. समस्या को ठीक किए बिना फिर से कोशिश न करें.
NOT_FOUND अनुरोध में, ऐसे दस्तावेज़ को अपडेट करने की कोशिश की गई जो मौजूद नहीं है. समस्या को ठीक किए बिना फिर से कोशिश न करें.
PERMISSION_DENIED उपयोगकर्ता के पास यह अनुरोध करने की अनुमति नहीं है. समस्या को ठीक किए बिना फिर से कोशिश न करें.
RESOURCE_EXHAUSTED यह प्रोजेक्ट, अपने कोटे या इलाके/कई इलाकों के लिए तय की गई सीमा से ज़्यादा है. यह पुष्टि करें कि आपने प्रोजेक्ट के लिए तय किया गया कोटा पार नहीं किया है. अगर आपने प्रोजेक्ट कोटा पार कर लिया है, तो समस्या को ठीक किए बिना दोबारा कोशिश न करें.

इसके अलावा, एक्सपोनेन्शियल बैकऑफ़ के साथ फिर से कोशिश करें.
UNAUTHENTICATED अनुरोध में पुष्टि करने के लिए मान्य क्रेडेंशियल शामिल नहीं थे. समस्या को ठीक किए बिना फिर से कोशिश न करें.
UNAVAILABLE Cloud Firestore सर्वर में कोई गड़बड़ी मिली. एक्सपोनेन्शियल बैकऑफ़ का इस्तेमाल करके फिर से कोशिश करें.