যদিও Cloud Firestore ব্যবহার করার সবচেয়ে সহজ উপায় হল একটি নেটিভ ক্লায়েন্ট লাইব্রেরি ব্যবহার করা, এমন কিছু পরিস্থিতিতে আছে যখন এটি সরাসরি REST API কল করা উপযোগী।
REST API নিম্নলিখিত ব্যবহারের ক্ষেত্রে সহায়ক হতে পারে:
- Cloud Firestore রিসোর্স সীমাবদ্ধ পরিবেশ থেকে অ্যাক্সেস করা, যেমন একটি ইন্টারনেট অফ থিংস (IoT) ডিভাইস, যেখানে একটি সম্পূর্ণ ক্লায়েন্ট লাইব্রেরি চালানো সম্ভব নয়।
- ডাটাবেস প্রশাসন স্বয়ংক্রিয় করা বা বিস্তারিত ডাটাবেস মেটাডেটা পুনরুদ্ধার করা।
আপনি যদি একটি gRPC-সমর্থিত ভাষা ব্যবহার করেন, REST API এর পরিবর্তে RPC API ব্যবহার করার কথা বিবেচনা করুন।
প্রমাণীকরণ এবং অনুমোদন
প্রমাণীকরণের জন্য, Cloud Firestore REST API হয় একটি Firebase Authentication আইডি টোকেন বা একটি Google Identity OAuth 2.0 টোকেন গ্রহণ করে৷ আপনার দেওয়া টোকেন আপনার অনুরোধের অনুমোদনকে প্রভাবিত করে:
আপনার অ্যাপ্লিকেশনের ব্যবহারকারীদের কাছ থেকে অনুরোধগুলি প্রমাণীকরণ করতে ফায়ারবেস আইডি টোকেন ব্যবহার করুন। এই অনুরোধগুলির জন্য, একটি অনুরোধ অনুমোদিত কিনা তা নির্ধারণ করতে Cloud Firestore Cloud Firestore Security Rules ব্যবহার করে৷
আপনার অ্যাপ্লিকেশন থেকে অনুরোধগুলি যেমন ডাটাবেস প্রশাসনের জন্য অনুরোধগুলি প্রমাণীকরণ করতে একটি Google পরিচয় OAuth 2.0 টোকেন এবং একটি পরিষেবা অ্যাকাউন্ট ব্যবহার করুন৷ এই অনুরোধগুলির জন্য, একটি অনুরোধ অনুমোদিত কিনা তা নির্ধারণ করতে Cloud Firestore আইডেন্টিটি এবং অ্যাক্সেস ম্যানেজমেন্ট (IAM) ব্যবহার করে।
ফায়ারবেস আইডি টোকেন নিয়ে কাজ করা
আপনি দুটি উপায়ে একটি ফায়ারবেস আইডি টোকেন পেতে পারেন:
- Firebase Authentication REST API ব্যবহার করে একটি Firebase ID টোকেন তৈরি করুন ।
- একটি Firebase Authentication SDK থেকে ব্যবহারকারীর Firebase ID টোকেন পুনরুদ্ধার করুন ।
একজন ব্যবহারকারীর ফায়ারবেস আইডি টোকেন পুনরুদ্ধার করে, আপনি ব্যবহারকারীর পক্ষ থেকে অনুরোধ করতে পারেন।
একটি 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 API-তে অনুরোধ পাঠানোর জন্য এই টোকেনের নিম্নলিখিত সুযোগ থাকতে হবে:
-
https://www.googleapis.com/auth/datastore
আপনি যদি একটি পরিষেবা অ্যাকাউন্ট এবং একটি Google আইডেন্টিটি OAuth 2.0 টোকেন দিয়ে আপনার অনুরোধগুলিকে প্রমাণীকরণ করেন, Cloud Firestore অনুমান করে যে আপনার অনুরোধগুলি একটি পৃথক ব্যবহারকারীর পরিবর্তে আপনার অ্যাপ্লিকেশনের পক্ষে কাজ করে৷ Cloud Firestore এই অনুরোধগুলিকে আপনার নিরাপত্তা নিয়ম উপেক্ষা করার অনুমতি দেয়৷ পরিবর্তে, একটি অনুরোধ অনুমোদিত কিনা তা নির্ধারণ করতে Cloud Firestore IAM ব্যবহার করে।
আপনি Cloud Firestore আইএএম ভূমিকা নির্ধারণ করে পরিষেবা অ্যাকাউন্টগুলির অ্যাক্সেসের অনুমতিগুলি নিয়ন্ত্রণ করতে পারেন৷
একটি অ্যাক্সেস টোকেন দিয়ে প্রমাণীকরণ করা হচ্ছে
আপনি একটি ফায়ারবেস আইডি টোকেন বা একটি Google আইডেন্টিটি OAuth 2.0 টোকেন পাওয়ার পর, এটিকে Cloud Firestore এন্ডপয়েন্টে পাস করুন একটি Authorization
হেডার হিসাবে সেট করুন Bearer {YOUR_TOKEN}
।
REST কল করা হচ্ছে
সমস্ত REST API এন্ডপয়েন্ট বেস URL https://firestore.googleapis.com/v1/
এর অধীনে বিদ্যমান।
YOUR_PROJECT_ID
প্রকল্পের অধীনে সংগ্রহের cities
ID LA
সহ একটি নথিতে একটি পথ তৈরি করতে আপনি নিম্নলিখিত কাঠামোটি ব্যবহার করবেন৷
/projects/YOUR_PROJECT_ID/databases/(default)/documents/cities/LA
এই পথের সাথে ইন্টারঅ্যাক্ট করতে, এটিকে বেস API URL এর সাথে একত্রিত করুন।
https://firestore.googleapis.com/v1/projects/YOUR_PROJECT_ID/databases/(default)/documents/cities/LA
REST API নিয়ে পরীক্ষা শুরু করার সর্বোত্তম উপায় হল API Explorer ব্যবহার করা, যা স্বয়ংক্রিয়ভাবে Google Identity OAuth 2.0 টোকেন তৈরি করে এবং আপনাকে API পরীক্ষা করার অনুমতি দেয়।
পদ্ধতি
নীচে দুটি সবচেয়ে গুরুত্বপূর্ণ পদ্ধতি গ্রুপের সংক্ষিপ্ত বিবরণ রয়েছে। একটি সম্পূর্ণ তালিকার জন্য, REST API রেফারেন্স দেখুন বা API এক্সপ্লোরার ব্যবহার করুন।
v1.projects.databases.documents
নথিতে CRUD ক্রিয়াকলাপগুলি সম্পাদন করুন, যেমন ডেটা যোগে বর্ণিত হয়েছে বা ডেটা গাইড পান ৷
v1.projects.databases.collectionGroups.indexes
সূচীতে কর্ম সম্পাদন করুন যেমন নতুন সূচী তৈরি করা, একটি বিদ্যমান সূচী নিষ্ক্রিয় করা, বা সমস্ত বর্তমান সূচী তালিকাভুক্ত করা। ডেটা স্ট্রাকচার মাইগ্রেশন স্বয়ংক্রিয় করতে বা প্রকল্পগুলির মধ্যে সূচী সিঙ্ক্রোনাইজ করার জন্য দরকারী।
এছাড়াও নথির মেটাডেটা পুনরুদ্ধার সক্ষম করে, যেমন একটি প্রদত্ত নথির জন্য সমস্ত ক্ষেত্র এবং উপ-সংগ্রহের তালিকা।
ত্রুটি কোড
Cloud Firestore অনুরোধ সফল হলে, Cloud Firestore এপিআই একটি HTTP 200 OK
স্ট্যাটাস কোড এবং অনুরোধ করা ডেটা প্রদান করে। যখন একটি অনুরোধ ব্যর্থ হয়, Cloud Firestore API একটি HTTP 4xx
বা 5xx
স্ট্যাটাস কোড এবং ত্রুটি সম্পর্কে তথ্য সহ একটি প্রতিক্রিয়া প্রদান করে।
নিম্নলিখিত সারণী প্রতিটি ত্রুটি কোডের জন্য প্রস্তাবিত ক্রিয়াগুলির তালিকা করে৷ এই কোডগুলি Cloud Firestore REST এবং RPC API-তে প্রযোজ্য। 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 সার্ভার একটি ত্রুটি ফিরিয়ে দিয়েছে। | সূচকীয় ব্যাকঅফ ব্যবহার করে পুনরায় চেষ্টা করুন। |