फायरबेस डेटाबेस रेस्ट एपीआई

एपीआई उपयोग

आप किसी भी फायरबेस रीयलटाइम डेटाबेस यूआरएल को REST एंडपॉइंट के रूप में उपयोग कर सकते हैं। आपको बस यूआरएल के अंत में .json जोड़ना है और अपने पसंदीदा HTTPS क्लाइंट से एक अनुरोध भेजना है।

HTTPS आवश्यक है. फायरबेस केवल एन्क्रिप्टेड ट्रैफ़िक पर प्रतिक्रिया करता है ताकि आपका डेटा सुरक्षित रहे।

प्राप्त करें - डेटा पढ़ना

आपके रीयलटाइम डेटाबेस से डेटा को एक एंडपॉइंट पर HTTP GET अनुरोध जारी करके पढ़ा जा सकता है। निम्नलिखित उदाहरण दर्शाता है कि आप किसी उपयोगकर्ता का नाम कैसे पुनः प्राप्त कर सकते हैं जिसे आपने पहले रीयलटाइम डेटाबेस में संग्रहीत किया था।

curl 'https://[PROJECT_ID].firebaseio.com/users/jack/name.json'

एक सफल अनुरोध को 200 OK HTTP स्थिति कोड द्वारा दर्शाया जाता है। प्रतिक्रिया में GET अनुरोध में पथ से जुड़ा डेटा शामिल है।

{ "first": "Jack", "last": "Sparrow" }

PUT - डेटा लिखना

आप PUT अनुरोध के साथ डेटा लिख ​​सकते हैं।

curl -X PUT -d '{ "first": "Jack", "last": "Sparrow" }' \
  'https://[PROJECT_ID].firebaseio.com/users/jack/name.json'

एक सफल अनुरोध को 200 OK HTTP स्थिति कोड द्वारा दर्शाया जाता है। प्रतिक्रिया में PUT अनुरोध में निर्दिष्ट डेटा शामिल है।

{ "first": "Jack", "last": "Sparrow" }

पोस्ट - डेटा पुश करना

जावास्क्रिप्ट push() विधि ( डेटा की सूचियाँ देखें) के समतुल्य को पूरा करने के लिए, आप एक POST अनुरोध जारी कर सकते हैं।

curl -X POST -d '{"user_id" : "jack", "text" : "Ahoy!"}' \
  'https://[PROJECT_ID].firebaseio.com/message_list.json'

एक सफल अनुरोध को 200 OK HTTP स्थिति कोड द्वारा दर्शाया जाता है। प्रतिक्रिया में POST अनुरोध में निर्दिष्ट नए डेटा का चाइल्ड नाम शामिल है।

{ "name": "-INOQPH-aV_psbk3ZXEX" }

पैच - डेटा अद्यतन करना

आप PATCH अनुरोध का उपयोग करके मौजूदा डेटा को ओवरराइट किए बिना किसी स्थान पर विशिष्ट बच्चों को अपडेट कर सकते हैं। PATCH के साथ लिखे जा रहे डेटा में नामित बच्चों को अधिलेखित कर दिया गया है, लेकिन छोड़े गए बच्चों को हटाया नहीं गया है। यह जावास्क्रिप्ट update() फ़ंक्शन के बराबर है।

curl -X PATCH -d '{"last":"Jones"}' \
 'https://[PROJECT_ID].firebaseio.com/users/jack/name/.json'

एक सफल अनुरोध को 200 OK HTTP स्थिति कोड द्वारा दर्शाया जाता है। प्रतिक्रिया में PATCH अनुरोध में निर्दिष्ट डेटा शामिल है।

{ "last": "Jones" }

हटाएँ - डेटा हटाना

आप DELETE अनुरोध के साथ डेटा हटा सकते हैं:

curl -X DELETE \
  'https://[PROJECT_ID].firebaseio.com/users/jack/name/last.json'

एक सफल DELETE अनुरोध को JSON null युक्त प्रतिक्रिया के साथ 200 OK HTTP स्थिति कोड द्वारा दर्शाया जाता है।

विधि ओवरराइड

यदि आप ऐसे ब्राउज़र से REST कॉल करते हैं जो पूर्ववर्ती विधियों का समर्थन नहीं करता है, तो आप POST अनुरोध करके और X-HTTP-Method-Override अनुरोध हेडर का उपयोग करके अपनी विधि सेट करके अनुरोध विधि को ओवरराइड कर सकते हैं।

curl -X POST -H "X-HTTP-Method-Override: DELETE" \
  'https://[PROJECT_ID].firebaseio.com/users/jack/name/last.json'

आप x-http-method-override क्वेरी पैरामीटर का भी उपयोग कर सकते हैं।

curl -X POST \
  'https://[PROJECT_ID].firebaseio.com/users/jack/name/last.json?x-http-method-override=DELETE'

सशर्त अनुरोध

सशर्त अनुरोध, एसडीके लेनदेन संचालन के आरईएसटी समकक्ष, एक निश्चित शर्त के अनुसार डेटा अपडेट करें। वर्कफ़्लो का अवलोकन देखें और डेटा सहेजने में REST के लिए सशर्त अनुरोधों के बारे में अधिक जानें।

फायरबेस ईटैग

फायरबेस ईटैग एक निर्दिष्ट स्थान पर वर्तमान डेटा के लिए विशिष्ट पहचानकर्ता है। यदि उस स्थान पर डेटा बदलता है, तो ईटैग भी बदल जाता है। प्रारंभिक REST अनुरोध (आमतौर पर GET , लेकिन PATCH के अलावा कुछ भी हो सकता है) के लिए हेडर में फ़ायरबेस ETag निर्दिष्ट किया जाना चाहिए।

curl -i 'https://[PROJECT_ID].firebaseio.com/posts/12345/upvotes.json' -H 'X-Firebase-ETag: true'

अगर-मैच

if-match स्थिति उस डेटा के लिए ETag मान निर्दिष्ट करती है जिसे आप अपडेट करना चाहते हैं। यदि आप शर्त का उपयोग करते हैं, तो रीयलटाइम डेटाबेस केवल उन अनुरोधों को पूरा करता है जहां लेखन अनुरोध में निर्दिष्ट ईटैग डेटाबेस में मौजूदा डेटा के ईटैग से मेल खाता है। फायरबेस ईटैग अनुरोध वाले स्थान पर ईटैग प्राप्त करें। यदि आप किसी ऐसे स्थान को अधिलेखित करना चाहते हैं जो शून्य है, तो null_etag उपयोग करें।

curl -iX PUT -d '11' 'https://[PROJECT_ID].firebaseio.com/posts/12345/upvotes.json' -H 'if-match: [ETAG_VALUE]'

अपेक्षित प्रतिक्रियाएँ

निम्न तालिका ईटैग मिलान के आधार पर प्रत्येक अनुरोध प्रकार के लिए अपेक्षित प्रतिक्रियाओं का अवलोकन प्रदान करती है।

अनुरोध का प्रकार 'एक्स-फ़ायरबेस-ईटैग: सत्य' ईटैग मेल खाता है
if_match: <matching etag>
ईटैग मेल नहीं खाता
if_match: <no matching etag>
पाना प्रतिक्रिया स्थिति/सामग्री 200: "<data_at_path>" 400: "...समर्थित नहीं.." 400: "...समर्थित नहीं.."
शीर्षलेख जोड़े गए ईटैग: <ETag_of_data> एन/ए एन/ए
रखना प्रतिक्रिया स्थिति/सामग्री 200: "<put_data>" 200: "<put_data>" 412: "...ईटैग बेमेल.."
शीर्षलेख जोड़े गए ईटैग: <ETag_of_put_data> एन/ए ईटैग: <डेटाबेस_ईटैग>
डाक प्रतिक्रिया स्थिति/सामग्री 200: "<पोस्ट_डेटा>" 400: "...समर्थित नहीं.." 400: "...समर्थित नहीं.."
शीर्षलेख जोड़े गए ईटैग: <ETag_of_post_data> एन/ए एन/ए
पैबंद प्रतिक्रिया स्थिति/सामग्री 400: "...समर्थित नहीं.." 400: "...समर्थित नहीं.." 400: "...समर्थित नहीं.."
शीर्षलेख जोड़े गए एन/ए एन/ए एन/ए
मिटाना प्रतिक्रिया स्थिति/सामग्री 200: शून्य 200: "<data_after_put>" 412: "...ईटैग बेमेल.."
शीर्षलेख जोड़े गए ईटैग: <ETag_of_null> एन/ए ईटैग: <डेटाबेस_ईटैग>

क्वेरी पैरामीटर

फायरबेस डेटाबेस REST API निम्नलिखित क्वेरी पैरामीटर और मान स्वीकार करता है:

एक्सेस टोकन

सभी अनुरोध प्रकारों द्वारा समर्थित। फायरबेस रीयलटाइम डेटाबेस सुरक्षा नियमों द्वारा संरक्षित डेटा तक पहुंच की अनुमति देने के लिए इस अनुरोध को प्रमाणित करता है। विवरण के लिए REST प्रमाणीकरण दस्तावेज़ देखें।

curl 'https://[PROJECT_ID].firebaseio/users/jack/name.json?access_token=CREDENTIAL'

उथला

यह एक उन्नत सुविधा है, जो आपको सब कुछ डाउनलोड करने की आवश्यकता के बिना बड़े डेटासेट के साथ काम करने में मदद करने के लिए डिज़ाइन की गई है। किसी स्थान पर लौटाए गए डेटा की गहराई को सीमित करने के लिए इसे true पर सेट करें। यदि स्थान पर डेटा JSON आदिम (स्ट्रिंग, संख्या या बूलियन) है, तो इसका मान बस वापस कर दिया जाएगा। यदि स्थान पर डेटा स्नैपशॉट एक JSON ऑब्जेक्ट है, तो प्रत्येक कुंजी के मान को true में छोटा कर दिया जाएगा।

बहस आराम के तरीके विवरण
उथला पाना प्रतिक्रिया की गहराई सीमित करें.
curl 'https://[PROJECT_ID].firebaseio/.json?shallow=true'

ध्यान दें कि shallow किसी अन्य क्वेरी पैरामीटर के साथ मिश्रित नहीं किया जा सकता है।

छपाई

सर्वर से प्रतिक्रिया में लौटाए गए डेटा को प्रारूपित करता है।

बहस आराम के तरीके विवरण
सुंदर प्राप्त करें, डालें, पोस्ट करें, पैच करें, हटाएँ डेटा को मानव-पठनीय प्रारूप में देखें।
चुपचाप प्राप्त करें, डालें, पोस्ट करें, पैच करें डेटा लिखते समय सर्वर से आउटपुट को दबाने के लिए उपयोग किया जाता है। परिणामी प्रतिक्रिया खाली होगी और 204 No Content HTTP स्थिति कोड द्वारा इंगित की जाएगी।
curl 'https://[PROJECT_ID].firebaseio.com/users/jack/name.json?print=pretty'
curl -X PUT -d '{ "first": "Jack", "last": "Sparrow" }' \
  'https://[PROJECT_ID].firebaseio.com/users/jack/name.json?print=silent'

वापस बुलाओ

केवल GET द्वारा समर्थित. किसी वेब ब्राउज़र से सभी डोमेन पर REST कॉल करने के लिए, आप प्रतिक्रिया को जावास्क्रिप्ट कॉलबैक फ़ंक्शन में लपेटने के लिए JSONP का उपयोग कर सकते हैं। REST API आपके द्वारा निर्दिष्ट कॉलबैक फ़ंक्शन में लौटाए गए डेटा को लपेटने के लिए callback= जोड़ें।

<script>
  function gotData(data) {
    console.log(data);
  }
</script>
<script src="https://[PROJECT_ID].firebaseio.com/.json?callback=gotData"></script>

प्रारूप

यदि export पर सेट किया गया है, तो सर्वर प्रतिक्रिया में प्राथमिकताओं को एन्कोड करेगा।

बहस आराम के तरीके विवरण
निर्यात पाना प्रतिक्रिया में प्राथमिकता वाली जानकारी शामिल करें।
curl 'https://[PROJECT_ID].firebaseio.com/.json?format=export'

डाउनलोड करना

केवल GET द्वारा समर्थित. यदि आप किसी वेब ब्राउज़र से अपने डेटा का फ़ाइल डाउनलोड ट्रिगर करना चाहते हैं, तो download= जोड़ें। यह REST सेवा को उचित हेडर जोड़ने का कारण बनता है ताकि ब्राउज़र डेटा को फ़ाइल में सहेजना जान सके।

curl 'https://[PROJECT_ID].firebaseio/.json?download=myfilename.txt'

समय समाप्त

सर्वर साइड पर पढ़ने में कितना समय लगता है इसे सीमित करने के लिए इसका उपयोग करें। यदि पढ़ने का अनुरोध आवंटित समय के भीतर पूरा नहीं होता है, तो यह HTTP 400 त्रुटि के साथ समाप्त हो जाता है। यह विशेष रूप से तब उपयोगी होता है जब आप छोटे डेटा स्थानांतरण की अपेक्षा करते हैं और संभावित रूप से विशाल सबट्री लाने के लिए बहुत लंबा इंतजार नहीं करना चाहते हैं। वास्तविक पढ़ने का समय डेटा आकार और कैशिंग के आधार पर भिन्न हो सकता है।

निम्नलिखित प्रारूप का उपयोग करके timeouts निर्दिष्ट करें: 3ms , 3s , या 3min , एक संख्या और एक इकाई के साथ। यदि निर्दिष्ट नहीं है, तो अधिकतम 15min का timeout लागू किया जाएगा। यदि timeout सकारात्मक नहीं है, या अधिकतम से अधिक है, तो अनुरोध HTTP 400 त्रुटि के साथ अस्वीकार कर दिया जाएगा।

आकारसीमा लिखें

किसी लेखन के आकार को सीमित करने के लिए, आप writeSizeLimit क्वेरी पैरामीटर को tiny (लक्ष्य=1s), small (लक्ष्य=10s), medium (लक्ष्य=30s), large (लक्ष्य=60s) के रूप में निर्दिष्ट कर सकते हैं। रीयलटाइम डेटाबेस प्रत्येक लेखन अनुरोध के आकार का अनुमान लगाता है और उन अनुरोधों को निरस्त कर देता है जिनमें लक्ष्य समय से अधिक समय लगेगा।

यदि आप unlimited निर्दिष्ट करते हैं, तो असाधारण रूप से बड़े लेखन (256एमबी तक पेलोड के साथ) की अनुमति है, जो संभावित रूप से बाद के अनुरोधों को अवरुद्ध कर देता है जबकि डेटाबेस वर्तमान ऑपरेशन को संसाधित करता है। सर्वर पर पहुंचने के बाद लेखन को रद्द नहीं किया जा सकता।

curl -X DELETE 'https://docs-examples.firebaseio.com/rest/delete-data.json?writeSizeLimit=medium'

यदि लेखन बहुत बड़ा है तो आपको निम्न त्रुटि संदेश दिखाई देगा:

Error: WRITE_TOO_BIG: Data to write exceeds the maximum size that can be modified with a single request.

इसके अतिरिक्त, आप फायरबेस सीएलआई का उपयोग करके संपूर्ण डेटाबेस उदाहरण के लिए defaultWriteSizeLimit सेट कर सकते हैं। यह सीमा एसडीके सहित सभी अनुरोधों पर लागू होती है। नए डेटाबेस defaultWriteSizeLimit large पर सेट करके बनाए जाते हैं। आप Firebase CLI का उपयोग करके defaultWriteSizeLimit tiny पर सेट नहीं कर सकते।

firebase database:settings:set defaultWriteSizeLimit large

द्वारा आदेश

अधिक जानकारी के लिए ऑर्डर किए गए डेटा पर गाइड का अनुभाग देखें।

लिमिटटूफर्स्ट, लिमिटटूलास्ट, स्टार्टएट, एंडएट, इक्वलटू

अधिक जानकारी के लिए डेटा फ़िल्टर करने पर मार्गदर्शिका में अनुभाग देखें।

REST API से स्ट्रीमिंग

फायरबेस REST एंडपॉइंट इवेंटसोर्स / सर्वर-सेंटेड इवेंट प्रोटोकॉल का समर्थन करते हैं। अपने रीयलटाइम डेटाबेस में किसी एक स्थान पर परिवर्तन स्ट्रीम करने के लिए, आपको कुछ चीज़ें करने की आवश्यकता है:

  • क्लाइंट के एक्सेप्ट हेडर को "text/event-stream" पर सेट करें
  • HTTP रीडायरेक्ट का सम्मान करें, विशेष रूप से HTTP स्थिति कोड 307 का
  • यदि स्थान को पढ़ने के लिए अनुमति की आवश्यकता है, तो आपको auth पैरामीटर शामिल करना होगा

बदले में, सर्वर अनुरोधित URL परिवर्तनों पर डेटा की स्थिति के रूप में नामित ईवेंट भेजेगा। इन संदेशों की संरचना EventSource प्रोटोकॉल के अनुरूप है।

event: event name
data: JSON encoded data payload

सर्वर निम्नलिखित ईवेंट भेज सकता है:

रखना

JSON-एन्कोडेड डेटा दो कुंजियों वाला एक ऑब्जेक्ट है: पथ और डेटापथ कुंजी अनुरोध URL के सापेक्ष किसी स्थान की ओर इशारा करती है। क्लाइंट को अपने कैश में उस स्थान के सभी डेटा को डेटा से बदलना चाहिए।

पैबंद

JSON-एन्कोडेड डेटा दो कुंजियों वाला एक ऑब्जेक्ट है: पथ और डेटापथ कुंजी अनुरोध URL के सापेक्ष किसी स्थान की ओर इशारा करती है। डेटा में प्रत्येक कुंजी के लिए, क्लाइंट को अपने कैश में संबंधित कुंजी को संदेश में उस कुंजी के डेटा से बदलना चाहिए।

जिंदा रहो

इस इवेंट का डेटा null है. किसी कार्रवाई की आवश्यकता नहीं है.

रद्द करना

कुछ अप्रत्याशित त्रुटियाँ `रद्द करें` ईवेंट भेज सकती हैं और कनेक्शन समाप्त कर सकती हैं। इस घटना के लिए उपलब्ध कराए गए डेटा में कारण का वर्णन किया गया है। कुछ संभावित कारण इस प्रकार हैं: 1. फायरबेस रीयलटाइम डेटाबेस सुरक्षा नियम अब अनुरोधित स्थान पर पढ़ने की अनुमति नहीं देते हैं। इस कारण से 'डेटा' विवरण "अनुमति अस्वीकृत" है। 2. एक लेखन ने एक इवेंट स्ट्रीमर को ट्रिगर किया जिसने एक बड़ा JSON ट्री भेजा जो हमारी सीमा, 512MB से अधिक है। इस कारण से 'डेटा' है "निर्दिष्ट पेलोड बहुत बड़ा है, कृपया कम डेटा वाले स्थान का अनुरोध करें।"

auth_revoked

इस ईवेंट का डेटा एक स्ट्रिंग है जो दर्शाता है कि क्रेडेंशियल समाप्त हो गया है। यह ईवेंट तब भेजा जाता है जब आपूर्ति किया गया auth पैरामीटर अब मान्य नहीं है।

यहां घटनाओं का एक उदाहरण सेट है जो सर्वर भेज सकता है:

// Set your entire cache to {"a": 1, "b": 2}
event: put
data: {"path": "/", "data": {"a": 1, "b": 2}}

// Put the new data in your cache under the key 'c', so that the complete cache now looks like:
// {"a": 1, "b": 2, "c": {"foo": true, "bar": false}}
event: put
data: {"path": "/c", "data": {"foo": true, "bar": false}}

// For each key in the data, update (or add) the corresponding key in your cache at path /c,
// for a final cache of: {"a": 1, "b": 2, "c": {"foo": 3, "bar": false, "baz": 4}}
event: patch
data: {"path": "/c", "data": {"foo": 3, "baz": 4}}

प्राथमिकताओं

किसी स्थान के लिए प्राथमिकता जानकारी को .priority नामक "वर्चुअल चाइल्ड" के साथ संदर्भित किया जा सकता है। आप GET अनुरोधों के साथ प्राथमिकताएँ पढ़ सकते हैं और उन्हें PUT अनुरोधों के साथ लिख सकते हैं। उदाहरण के लिए, निम्नलिखित अनुरोध users/tom नोड की प्राथमिकता को पुनः प्राप्त करता है:

curl 'https://[PROJECT_ID].firebaseio/users/tom/.priority.json'

एक ही समय में प्राथमिकता और डेटा लिखने के लिए, आप JSON पेलोड में एक .priority चाइल्ड जोड़ सकते हैं:

curl -X PUT -d '{"name": {"first": "Tom"}, ".priority": 1.0}' \
  'https://[PROJECT_ID].firebaseio/users/tom.json'

एक ही समय में प्राथमिकता और एक आदिम मान (उदाहरण के लिए एक स्ट्रिंग) लिखने के लिए, आप एक .priority बच्चा जोड़ सकते हैं और एक .value बच्चे में आदिम मान डाल सकते हैं:

curl -X PUT -d '{".value": "Tom", ".priority": 1.0}' \
  'https://[PROJECT_ID].firebaseio/users/tom/name/first.json'

यह 1.0 की प्राथमिकता के साथ "Tom" लिखता है। JSON पेलोड में किसी भी गहराई पर प्राथमिकताएँ शामिल की जा सकती हैं।

सर्वर मान

आप प्लेसहोल्डर मान का उपयोग करके किसी स्थान पर सर्वर मान लिख सकते हैं जो एकल .sv कुंजी वाला एक ऑब्जेक्ट है। उस कुंजी का मान सर्वर मान का प्रकार है जिसे आप सेट करना चाहते हैं। उदाहरण के लिए, निम्नलिखित अनुरोध नोड के मान को फायरबेस सर्वर के वर्तमान टाइमस्टैम्प पर सेट करता है:

curl -X PUT -d '{".sv": "timestamp"}' \
  'https://[PROJECT_ID].firebaseio/users/tom/startedAtTime.json'

आप ऊपर बताए गए "वर्चुअल चाइल्ड" पथ का उपयोग करके, सर्वर मानों का उपयोग करके प्राथमिकताएं भी लिख सकते हैं।

समर्थित सर्वर मानों में शामिल हैं:

सर्वर मान
TIMESTAMP UNIX युग के बाद का समय, मिलीसेकंड में।
वेतन वृद्धि { ".sv": {"increment": <delta_value> }} रूप में एक पूर्णांक या फ़्लोटिंग पॉइंट डेल्टा मान प्रदान करें, जिसके साथ वर्तमान डेटाबेस मान को परमाणु रूप से बढ़ाया जा सके। यदि डेटा अभी तक मौजूद नहीं है, तो अद्यतन डेटा को डेल्टा मान पर सेट कर देगा। यदि डेल्टा मान या मौजूदा डेटा में से कोई भी फ़्लोटिंग पॉइंट नंबर है, तो दोनों मानों को फ़्लोटिंग पॉइंट नंबर के रूप में व्याख्या किया जाएगा और बैक-एंड पर दोहरे मान के रूप में लागू किया जाएगा। दोहरा अंकगणित और दोहरे मानों का प्रतिनिधित्व IEEE 754 शब्दार्थ का अनुसरण करता है। यदि धनात्मक/नकारात्मक पूर्णांक अतिप्रवाह है, तो योग की गणना दोहरे के रूप में की जाती है।

फायरबेस रीयलटाइम डेटाबेस सुरक्षा नियमों को पुनः प्राप्त करना और अद्यतन करना

REST API का उपयोग आपके फायरबेस प्रोजेक्ट के लिए फायरबेस रीयलटाइम डेटाबेस सुरक्षा नियमों को पुनः प्राप्त करने और अपडेट करने के लिए भी किया जा सकता है। आपको अपने फायरबेस प्रोजेक्ट के रहस्य की आवश्यकता होगी, जिसे आप अपने फायरबेस प्रोजेक्ट की सेटिंग के सेवा खाता पैनल के अंतर्गत पा सकते हैं।

curl 'https://[PROJECT_ID].firebaseio/.settings/rules.json?auth=FIREBASE_SECRET'
curl -X PUT -d '{ "rules": { ".read": true } }' 'https://[PROJECT_ID].firebaseio/.settings/rules.json?auth=FIREBASE_SECRET'

अनुरोधों को प्रमाणित करें

डिफ़ॉल्ट रूप से, REST अनुरोधों को बिना किसी प्रमाणीकरण के निष्पादित किया जाता है और यह केवल तभी सफल होगा जब रीयलटाइम डेटाबेस नियम सार्वजनिक रूप से डेटा को पढ़ने या लिखने की अनुमति देते हैं। अपने अनुरोध को प्रमाणित करने के लिए, access_token= या auth= क्वेरी पैरामीटर का उपयोग करें।

REST अनुरोधों को प्रमाणित करें में REST API के माध्यम से प्रमाणीकरण के बारे में और जानें।

त्रुटि स्थितियाँ

फायरबेस डेटाबेस REST API निम्नलिखित त्रुटि कोड लौटा सकता है।

HTTP स्थिति कोड
400 गलत अनुरोध

निम्न त्रुटि स्थितियों में से एक:

  • PUT या POST डेटा को पार्स करने में असमर्थ.
  • PUT या POST डेटा गुम है.
  • अनुरोध बहुत बड़ा डेटा PUT या POST का प्रयास करता है।
  • REST API कॉल में पथ के भाग के रूप में अमान्य बच्चे के नाम शामिल हैं।
  • REST API कॉल पथ बहुत लंबा है।
  • अनुरोध में एक अज्ञात सर्वर मान शामिल है।
  • क्वेरी के लिए सूचकांक आपके फायरबेस रीयलटाइम डेटाबेस सुरक्षा नियमों में परिभाषित नहीं है।
  • अनुरोध निर्दिष्ट क्वेरी पैरामीटर में से किसी एक का समर्थन नहीं करता है।
  • अनुरोध क्वेरी पैरामीटर को उथले GET अनुरोध के साथ मिलाता है।
अनधिकृत 401

निम्न त्रुटि स्थितियों में से एक:

404 नहीं मिला निर्दिष्ट रीयलटाइम डेटाबेस नहीं मिला.
500 आंतरिक सर्वर त्रुटि सर्वर ने एक त्रुटि लौटा दी. अधिक जानकारी के लिए त्रुटि संदेश देखें.
503 सेवा उपलब्ध नहीं निर्दिष्ट फ़ायरबेस रीयलटाइम डेटाबेस अस्थायी रूप से अनुपलब्ध है, जिसका अर्थ है कि अनुरोध का प्रयास नहीं किया गया था।
412 पूर्व शर्त विफल इफ़-मैच हेडर में अनुरोध का निर्दिष्ट ETag मान सर्वर के मान से मेल नहीं खाता।