ফায়ারবেস ডাটাবেস REST API

API ব্যবহার

আপনি যেকোন ফায়ারবেস রিয়েলটাইম ডেটাবেস ইউআরএল একটি REST এন্ডপয়েন্ট হিসেবে ব্যবহার করতে পারেন। আপনাকে যা করতে হবে তা হল URL-এর শেষে .json যোগ করুন এবং আপনার প্রিয় HTTPS ক্লায়েন্ট থেকে একটি অনুরোধ পাঠান।

HTTPS প্রয়োজন। Firebase শুধুমাত্র এনক্রিপ্ট করা ট্র্যাফিকের প্রতিক্রিয়া জানায় যাতে আপনার ডেটা নিরাপদ থাকে।

GET - ডেটা পড়া

আপনার রিয়েলটাইম ডেটাবেস থেকে ডেটা একটি শেষ পয়েন্টে একটি 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" }

পোস্ট - পুশিং ডেটা

JavaScript 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 - ডেটা অপসারণ করা হচ্ছে

আপনি একটি DELETE অনুরোধের সাথে ডেটা মুছতে পারেন:

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

একটি সফল DELETE অনুরোধ 200 OK HTTP স্ট্যাটাস কোড দ্বারা নির্দেশিত হয় যার একটি প্রতিক্রিয়া JSON null রয়েছে।

পদ্ধতি ওভাররাইড

আপনি যদি এমন একটি ব্রাউজার থেকে 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'

শর্তাধীন অনুরোধ

শর্তাধীন অনুরোধ, SDK লেনদেন ক্রিয়াকলাপের REST সমতুল্য, একটি নির্দিষ্ট শর্ত অনুযায়ী ডেটা আপডেট করুন। কর্মপ্রবাহের একটি ওভারভিউ দেখুন এবং ডেটা সংরক্ষণে REST-এর শর্তসাপেক্ষ অনুরোধ সম্পর্কে আরও জানুন।

Firebase ETag

Firebase ETag হল একটি নির্দিষ্ট স্থানে বর্তমান ডেটার অনন্য শনাক্তকারী। যদি সেই অবস্থানে ডেটা পরিবর্তিত হয়, তাহলে ETagও পরিবর্তিত হয়। প্রাথমিক REST অনুরোধের জন্য Firebase ETag অবশ্যই হেডারে নির্দিষ্ট করতে হবে (সাধারণত একটি GET , কিন্তু PATCH ছাড়া অন্য কিছু হতে পারে)।

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

যদি-মিল

if-match শর্তটি আপনি যে ডেটা আপডেট করতে চান তার জন্য ETag মান নির্দিষ্ট করে৷ আপনি যদি শর্তটি ব্যবহার করেন, রিয়েলটাইম ডেটাবেস শুধুমাত্র সেই অনুরোধগুলি সম্পূর্ণ করে যেখানে লেখার অনুরোধে উল্লেখিত ETag ডাটাবেসের বিদ্যমান ডেটার ETag-এর সাথে মেলে। Firebase ETag অনুরোধ সহ একটি অবস্থানে ETag আনুন। আপনি যদি নাল কোনো অবস্থান ওভাররাইট করতে চান তাহলে null_etag ব্যবহার করুন।

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

প্রত্যাশিত প্রতিক্রিয়া

নিম্নলিখিত টেবিলটি ETag মিলের উপর ভিত্তি করে প্রতিটি অনুরোধের প্রকারের জন্য প্রত্যাশিত প্রতিক্রিয়াগুলির একটি ওভারভিউ প্রদান করে।

অনুরোধের ধরন 'এক্স-ফায়ারবেস-ইটিগ: সত্য' ETag মেলে
if_match: <matching etag>
ETag মেলে না
if_match: <no matching etag>
পাওয়া প্রতিক্রিয়া স্থিতি/কন্টেন্ট 200: "<data_at_path>" 400: "...সমর্থিত নয়..." 400: "...সমর্থিত নয়..."
শিরোনাম যোগ করা হয়েছে ETag: <ETag_of_data> N/A N/A
PUT প্রতিক্রিয়া স্থিতি/কন্টেন্ট 200: "<put_data>" 200: "<put_data>" 412: "...ETag অমিল..."
শিরোনাম যোগ করা হয়েছে ETag: <ETag_of_put_data> N/A ETag: <database_ETag>
পোস্ট প্রতিক্রিয়া স্থিতি/কন্টেন্ট 200: "<post_data>" 400: "...সমর্থিত নয়..." 400: "...সমর্থিত নয়..."
শিরোনাম যোগ করা হয়েছে ETag: <ETag_of_post_data> N/A N/A
প্যাচ প্রতিক্রিয়া স্থিতি/কন্টেন্ট 400: "...সমর্থিত নয়..." 400: "...সমর্থিত নয়..." 400: "...সমর্থিত নয়..."
শিরোনাম যোগ করা হয়েছে N/A N/A N/A
মুছে ফেলা প্রতিক্রিয়া স্থিতি/কন্টেন্ট 200: শূন্য 200: "<data_after_put>" 412: "...ETag অমিল..."
শিরোনাম যোগ করা হয়েছে ETag: <ETag_of_null> N/A ETag: <database_ETag>

ক্যোয়ারী প্যারামিটার

Firebase Database REST API নিম্নলিখিত ক্যোয়ারী প্যারামিটার এবং মানগুলি গ্রহণ করে:

অ্যাক্সেস_টোকেন

সব ধরনের অনুরোধ দ্বারা সমর্থিত. Firebase রিয়েলটাইম ডেটাবেস নিরাপত্তা নিয়ম দ্বারা সুরক্ষিত ডেটাতে অ্যাক্সেসের অনুমতি দেওয়ার জন্য এই অনুরোধটিকে প্রমাণীকরণ করে৷ বিস্তারিত জানার জন্য REST প্রমাণীকরণ ডকুমেন্টেশন দেখুন।

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

অগভীর

এটি একটি উন্নত বৈশিষ্ট্য, সবকিছু ডাউনলোড করার প্রয়োজন ছাড়াই আপনাকে বড় ডেটাসেটের সাথে কাজ করতে সাহায্য করার জন্য ডিজাইন করা হয়েছে৷ একটি অবস্থানে প্রত্যাবর্তিত ডেটার গভীরতা সীমিত করতে এটি true সেট করুন। যদি অবস্থানের ডেটা একটি JSON আদিম (স্ট্রিং, সংখ্যা বা বুলিয়ান) হয়, তবে এর মানটি সহজভাবে ফেরত দেওয়া হবে। যদি অবস্থানের ডেটা স্ন্যাপশটটি একটি JSON অবজেক্ট হয়, তাহলে প্রতিটি কী-এর মান true ছেঁটে ফেলা হবে।

যুক্তি REST পদ্ধতি বর্ণনা
অগভীর পাওয়া প্রতিক্রিয়ার গভীরতা সীমিত করুন।
curl 'https://[PROJECT_ID].firebaseio/.json?shallow=true'

মনে রাখবেন যে shallow অন্য কোন ক্যোয়ারী প্যারামিটারের সাথে মিশ্রিত করা যাবে না।

ছাপা

সার্ভার থেকে প্রতিক্রিয়ায় ফিরে আসা ডেটা ফর্ম্যাট করে।

যুক্তি REST পদ্ধতি বর্ণনা
সুন্দর পান, রাখুন, পোস্ট করুন, প্যাচ করুন, মুছুন একটি মানব-পাঠযোগ্য বিন্যাসে ডেটা দেখুন।
নীরব পান, রাখুন, পোস্ট করুন, প্যাচ করুন ডেটা লেখার সময় সার্ভার থেকে আউটপুট দমন করতে ব্যবহৃত হয়। ফলস্বরূপ প্রতিক্রিয়া খালি হবে এবং একটি 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 কল করতে, আপনি একটি JavaScript কলব্যাক ফাংশনে প্রতিক্রিয়া মোড়ানোর জন্য JSONP ব্যবহার করতে পারেন। REST API আপনার নির্দিষ্ট করা কলব্যাক ফাংশনে ফেরত ডেটা মোড়ানোর জন্য callback= যোগ করুন।

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

বিন্যাস

export সেট করা থাকলে, সার্ভার প্রতিক্রিয়াতে অগ্রাধিকার এনকোড করবে।

যুক্তি REST পদ্ধতি বর্ণনা
রপ্তানি পাওয়া প্রতিক্রিয়াতে অগ্রাধিকার তথ্য অন্তর্ভুক্ত করুন।
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 উল্লেখ করেন, ব্যতিক্রমীভাবে বড় লেখার (256MB পর্যন্ত পেলোড সহ) অনুমতি দেওয়া হয়, ডাটাবেস বর্তমান অপারেশন প্রক্রিয়া করার সময় পরবর্তী অনুরোধগুলিকে সম্ভাব্যভাবে ব্লক করে। একবার সার্ভারে পৌঁছালে লেখা বাতিল করা যাবে না।

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.

অতিরিক্তভাবে, আপনি Firebase CLI ব্যবহার করে পুরো ডাটাবেসের উদাহরণের জন্য defaultWriteSizeLimit সেট করতে পারেন। এই সীমাটি SDK সহ সমস্ত অনুরোধের ক্ষেত্রে প্রযোজ্য। নতুন ডাটাবেস defaultWriteSizeLimit large সেট করে তৈরি করা হয়। আপনি Firebase CLI ব্যবহার করে defaultWriteSizeLimit tiny সেট করতে পারবেন না।

firebase database:settings:set defaultWriteSizeLimit large

আদেশ দ্বারা

আরও তথ্যের জন্য আদেশকৃত ডেটার নির্দেশিকায় বিভাগটি দেখুন।

limitToFirst, limitToLast, startAt, endAt, equalTo

আরও তথ্যের জন্য ডেটা ফিল্টার করার নির্দেশিকাতে বিভাগটি দেখুন।

REST API থেকে স্ট্রিমিং

Firebase 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 কী সহ একটি বস্তু। সেই কীটির মান হল সার্ভারের মান যে ধরনের আপনি সেট করতে চান। উদাহরণস্বরূপ, নিম্নলিখিত অনুরোধটি Firebase সার্ভারের বর্তমান টাইমস্ট্যাম্পে নোডের মান সেট করে:

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

আপনি উপরে উল্লিখিত "ভার্চুয়াল চাইল্ড" পাথ ব্যবহার করে সার্ভার মান ব্যবহার করে অগ্রাধিকার লিখতে পারেন।

সমর্থিত সার্ভার মান অন্তর্ভুক্ত:

সার্ভার মান
টাইমস্ট্যাম্প UNIX যুগের পর থেকে সময়, মিলিসেকেন্ডে।
বৃদ্ধি একটি পূর্ণসংখ্যা বা ফ্লোটিং পয়েন্ট ডেল্টা মান প্রদান করুন, { ".sv": {"increment": <delta_value> }} আকারে, যা দিয়ে বর্তমান ডাটাবেস মানকে পারমাণবিকভাবে বৃদ্ধি করতে হবে। যদি ডেটা এখনও বিদ্যমান না থাকে, আপডেটটি ডেটাকে ডেল্টা মান নির্ধারণ করবে। যদি ডেল্টা মান বা বিদ্যমান ডেটার যেকোনো একটিই ফ্লোটিং পয়েন্ট নম্বর হয়, তাহলে উভয় মানই ফ্লোটিং পয়েন্ট নম্বর হিসাবে ব্যাখ্যা করা হবে এবং ডবল মান হিসাবে ব্যাক-এন্ডে প্রয়োগ করা হবে। দ্বৈত গাণিতিক এবং দ্বিগুণ মানের উপস্থাপনা IEEE 754 শব্দার্থবিদ্যা অনুসরণ করে। যদি ইতিবাচক/নেতিবাচক পূর্ণসংখ্যা ওভারফ্লো থাকে, তাহলে যোগফলটি দ্বিগুণ হিসাবে গণনা করা হয়।

ফায়ারবেস রিয়েলটাইম ডেটাবেস নিরাপত্তা নিয়ম পুনরুদ্ধার এবং আপডেট করা হচ্ছে

REST API আপনার Firebase প্রকল্পের জন্য Firebase রিয়েলটাইম ডেটাবেস নিরাপত্তা নিয়ম পুনরুদ্ধার এবং আপডেট করতেও ব্যবহার করা যেতে পারে। আপনার Firebase প্রকল্পের গোপনীয়তা প্রয়োজন, যা আপনি আপনার Firebase প্রকল্পের সেটিং এর পরিষেবা অ্যাকাউন্ট প্যানেলের অধীনে খুঁজে পেতে পারেন।

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-এর মাধ্যমে প্রমাণীকরণ সম্পর্কে আরও জানুন।

ত্রুটি শর্ত

Firebase Database REST API নিম্নলিখিত ত্রুটি কোডগুলি ফেরত দিতে পারে৷

HTTP স্ট্যাটাস কোড
400 খারাপ অনুরোধ

নিম্নলিখিত ত্রুটি শর্তগুলির মধ্যে একটি:

  • PUT বা POST ডেটা পার্স করতে অক্ষম৷
  • PUT বা POST ডেটা অনুপস্থিত৷
  • অনুরোধটি খুব বড় ডেটা PUT বা POST চেষ্টা করে।
  • REST API কলে পথের অংশ হিসাবে অবৈধ সন্তানের নাম রয়েছে।
  • REST API কল পাথ অনেক লম্বা৷
  • অনুরোধে একটি অচেনা সার্ভার মান রয়েছে৷
  • আপনার ফায়ারবেস রিয়েলটাইম ডেটাবেস সিকিউরিটি নিয়মে কোয়েরির সূচী সংজ্ঞায়িত করা হয়নি।
  • অনুরোধটি নির্দিষ্ট করা কোয়েরি প্যারামিটারগুলির একটিকে সমর্থন করে না৷
  • অনুরোধটি একটি অগভীর GET অনুরোধের সাথে ক্যোয়ারী পরামিতি মিশ্রিত করে।
401 অননুমোদিত

নিম্নলিখিত ত্রুটি শর্তগুলির মধ্যে একটি:

404 পাওয়া যায়নি নির্দিষ্ট রিয়েলটাইম ডাটাবেস পাওয়া যায়নি.
500 অভ্যন্তরীণ সার্ভার সমস্যা সার্ভার একটি ত্রুটি ফিরিয়ে দিয়েছে৷ আরো বিস্তারিত জানার জন্য ত্রুটি বার্তা দেখুন.
503 পরিষেবা অনুপলব্ধ৷ নির্দিষ্ট ফায়ারবেস রিয়েলটাইম ডেটাবেস সাময়িকভাবে অনুপলব্ধ, যার মানে অনুরোধের চেষ্টা করা হয়নি।
412 পূর্বশর্ত ব্যর্থ হয়েছে যদি-ম্যাচ হেডারে অনুরোধের নির্দিষ্ট ETag মান সার্ভারের মানের সাথে মেলে না।