এই কুইকস্টার্টটি আপনাকে কীভাবে ক্লাউড ফায়ার স্টোর সেট আপ করতে হবে, ডেটা যুক্ত করতে হবে, তারপরে ফায়ারবেস কনসোলে আপনি যে ডেটা সবে যুক্ত করেছেন তা দেখুন।
ক্লাউড ফায়ার স্টোর ডাটাবেস তৈরি করুন
যদি আপনি ইতিমধ্যে না পেয়ে থাকেন তবে ফায়ারবেস প্রকল্পটি তৈরি করুন: ফায়ারবেস কনসোলে , প্রকল্প যুক্ত করুন ক্লিক করুন , তারপরে একটি ফায়ারবেস প্রকল্প তৈরি করতে বা একটি বিদ্যমান জিসিপি প্রকল্পে ফায়ারবেস পরিষেবা যুক্ত করার জন্য অন-স্ক্রীন নির্দেশাবলী অনুসরণ করুন।
ফায়ারবেস কনসোলের ক্লাউড ফায়ারস্টোর বিভাগে নেভিগেট করুন। আপনাকে একটি বিদ্যমান ফায়ারবেস প্রকল্প নির্বাচন করতে অনুরোধ করা হবে। ডাটাবেস তৈরি ওয়ার্কফ্লো অনুসরণ করুন।
আপনার ক্লাউড ফায়ারস্টোর সুরক্ষা বিধিগুলির জন্য একটি সূচনা মোড নির্বাচন করুন:
- পরীক্ষা মোড
মোবাইল এবং ওয়েব ক্লায়েন্ট লাইব্রেরি দিয়ে শুরু করার জন্য ভাল, তবে যে কেউ আপনার ডেটা পড়তে এবং ওভাররাইট করতে দেয়। পরীক্ষার পরে, আপনার ডেটা সিকিউর বিভাগটি পর্যালোচনা করতে ভুলবেন না।
ওয়েব, আইওএস বা অ্যান্ড্রয়েড এসডিকে দিয়ে শুরু করতে পরীক্ষা মোডটি নির্বাচন করুন।
- লকড মোড
মোবাইল এবং ওয়েব ক্লায়েন্টদের থেকে সমস্ত পড়া এবং লেখাকে অস্বীকার করে। আপনার অনুমোদনপ্রাপ্ত অ্যাপ্লিকেশন সার্ভারগুলি (সি #, গো, জাভা, নোড.জেএস, পিএইচপি, পাইথন বা রুবি) এখনও আপনার ডাটাবেস অ্যাক্সেস করতে পারে।
সি #, গো, জাভা, নোড.জেএস, পিএইচপি, পাইথন বা রুবি সার্ভার ক্লায়েন্ট লাইব্রেরি দিয়ে শুরু করতে, লক মোডটি নির্বাচন করুন।
আপনার ডাটাবেসের জন্য একটি অবস্থান নির্বাচন করুন।
এই অবস্থান সেটিংটি আপনার প্রকল্পের ডিফল্ট গুগল ক্লাউড প্ল্যাটফর্ম (জিসিপি) রিসোর্সের অবস্থান । নোট করুন যে এই অবস্থানটি আপনার প্রকল্পের জিসিপি পরিষেবাদির জন্য ব্যবহার করা হবে যার জন্য একটি অবস্থান সেটিং প্রয়োজন, বিশেষত, আপনার ডিফল্ট ক্লাউড স্টোরেজ বালতি এবং আপনার অ্যাপ ইঞ্জিন অ্যাপ্লিকেশন (যা আপনি ক্লাউড শিডিয়ুলার ব্যবহার করলে প্রয়োজনীয়)।
আপনি যদি কোনও অবস্থান নির্বাচন করতে সক্ষম না হন তবে আপনার প্রকল্পের ইতিমধ্যে একটি ডিফল্ট জিসিপি রিসোর্স অবস্থান রয়েছে। এটি হয় প্রকল্প তৈরির সময় বা অন্য কোনও পরিষেবা সেট আপ করার সময় সেট করা হয়েছিল যার জন্য কোনও অবস্থান সেটিং প্রয়োজন।
সম্পন্ন ক্লিক করুন।
আপনি যখন ক্লাউড ফায়ার স্টোর সক্ষম করবেন তখন এটি ক্লাউড এপিআই ম্যানেজারে এপিআই সক্ষম করে।
আপনার বিকাশের পরিবেশ স্থাপন করুন
আপনার অ্যাপ্লিকেশনটিতে প্রয়োজনীয় নির্ভরতা এবং ক্লায়েন্ট লাইব্রেরি যুক্ত করুন।
ওয়েব
- আপনার ওয়েব অ্যাপ্লায় ফায়ারবেস যুক্ত করার জন্য নির্দেশাবলী অনুসরণ করুন ।
- আপনার অ্যাপ্লিকেশনটিতে ফায়ারবেস এবং ক্লাউড ফায়ারস্টোর লাইব্রেরি যুক্ত করুন:
<script src="https://www.gstatic.com/firebasejs/8.2.4/firebase-app.js"></script> <script src="https://www.gstatic.com/firebasejs/8.2.4/firebase-firestore.js"></script>
ক্লাউড ফায়ারস্টোর এসডিকে এনপিএম প্যাকেজ হিসাবেও উপলব্ধ।npm install firebase@8.2.4 --save
আপনার ম্যানুয়ালি ফায়ারবেস এবং ক্লাউড ফায়ার স্টোর উভয়ের প্রয়োজন।const firebase = require("firebase"); // Required for side-effects require("firebase/firestore");
আইওএস
- আপনার আইওএস অ্যাপে ফায়ারবেস যুক্ত করার জন্য নির্দেশাবলী অনুসরণ করুন ।
- আপনার
Podfile
pod 'Firebase/Firestore' # Optionally, include the Swift extensions if you're using Swift. pod 'FirebaseFirestoreSwift'
এ ক্লাউড ফায়ারস্টোর পোড যুক্ত করুন - ফাইলটি সংরক্ষণ করুন এবং
pod install
চালান।
জাভা
- আপনার অ্যান্ড্রয়েড অ্যাপে ফায়ারবেস যুক্ত করার জন্য নির্দেশাবলী অনুসরণ করুন ।
- ফায়ারবেস অ্যান্ড্রয়েড BoM ব্যবহার করে, আপনার মডিউল (অ্যাপ-স্তর) গ্রেড ফাইল (সাধারণত
app/build.gradle
.app/build.gradle
) ক্লাউড ফায়ারস্টোর অ্যান্ড্রয়েড লাইব্রেরির জন্য নির্ভরতা ঘোষণা করুন।dependencies { // Import the BoM for the Firebase platform implementation platform('com.google.firebase:firebase-bom:26.3.0') // Declare the dependency for the Cloud Firestore library // When using the BoM, you don't specify versions in Firebase library dependencies implementation 'com.google.firebase:firebase-firestore' }
ফায়ারবেস অ্যান্ড্রয়েড BoM ব্যবহার করে, আপনার অ্যাপ্লিকেশন সর্বদা ফায়ারবেস অ্যান্ড্রয়েড লাইব্রেরির সামঞ্জস্যপূর্ণ সংস্করণ ব্যবহার করবে।
(বিকল্প) বিওএম ব্যবহার না করে ফায়ারবেস লাইব্রেরি নির্ভরতা ঘোষণা করুন
আপনি যদি ফায়ারবেস BoM ব্যবহার না করা চয়ন করেন তবে আপনাকে অবশ্যই প্রতিটি ফায়ারবেস লাইব্রেরি সংস্করণকে তার নির্ভরতা লাইনে নির্দিষ্ট করতে হবে।
মনে রাখবেন যে আপনি যদি আপনার অ্যাপ্লিকেশনটিতে একাধিক ফায়ারবেস লাইব্রেরি ব্যবহার করেন তবে আমরা লাইব্রেরি সংস্করণগুলি পরিচালনা করতে BoM ব্যবহার করার জন্য সুপারিশ করি, যা নিশ্চিত করে যে সমস্ত সংস্করণ সামঞ্জস্যপূর্ণ।
dependencies { // Declare the dependency for the Cloud Firestore library // When NOT using the BoM, you must specify versions in Firebase library dependencies implementation 'com.google.firebase:firebase-firestore:22.0.1' }
কোটলিন + কেটিএক্স
- আপনার অ্যান্ড্রয়েড অ্যাপে ফায়ারবেস যুক্ত করার জন্য নির্দেশাবলী অনুসরণ করুন ।
- ফায়ারবেস অ্যান্ড্রয়েড BoM ব্যবহার করে, আপনার মডিউল (অ্যাপ-স্তর) গ্রেড ফাইল (সাধারণত
app/build.gradle
.app/build.gradle
) ক্লাউড ফায়ারস্টোর অ্যান্ড্রয়েড লাইব্রেরির জন্য নির্ভরতা ঘোষণা করুন।dependencies { // Import the BoM for the Firebase platform implementation platform('com.google.firebase:firebase-bom:26.3.0') // Declare the dependency for the Cloud Firestore library // When using the BoM, you don't specify versions in Firebase library dependencies implementation 'com.google.firebase:firebase-firestore-ktx' }
ফায়ারবেস অ্যান্ড্রয়েড BoM ব্যবহার করে, আপনার অ্যাপ্লিকেশন সর্বদা ফায়ারবেস অ্যান্ড্রয়েড লাইব্রেরির সামঞ্জস্যপূর্ণ সংস্করণ ব্যবহার করবে।
(বিকল্প) বিওএম ব্যবহার না করে ফায়ারবেস লাইব্রেরি নির্ভরতা ঘোষণা করুন
আপনি যদি ফায়ারবেস BoM ব্যবহার না করা চয়ন করেন তবে আপনাকে অবশ্যই প্রতিটি ফায়ারবেস লাইব্রেরি সংস্করণকে তার নির্ভরতা লাইনে নির্দিষ্ট করতে হবে।
মনে রাখবেন যে আপনি যদি আপনার অ্যাপ্লিকেশনটিতে একাধিক ফায়ারবেস লাইব্রেরি ব্যবহার করেন তবে আমরা লাইব্রেরি সংস্করণগুলি পরিচালনা করতে BoM ব্যবহার করার জন্য সুপারিশ করি, যা নিশ্চিত করে যে সমস্ত সংস্করণ সামঞ্জস্যপূর্ণ।
dependencies { // Declare the dependency for the Cloud Firestore library // When NOT using the BoM, you must specify versions in Firebase library dependencies implementation 'com.google.firebase:firebase-firestore-ktx:22.0.1' }
জাভা
- আপনার অ্যাপে ফায়ারবেস অ্যাডমিন এসডিকে যুক্ত করুন:
- গ্রেডল ব্যবহার করে:
compile 'com.google.firebase:firebase-admin:7.1.0'
- ম্যাভেন ব্যবহার:
<dependency> <groupId>com.google.firebase</groupId> <artifactId>firebase-admin</artifactId> <version>7.1.0</version> </dependency>
- গ্রেডল ব্যবহার করে:
- আপনার পরিবেশে যথাযথ শংসাপত্রগুলির সাথে ক্লাউড ফায়ারস্টোর শুরু করতে নীচের নির্দেশিকাগুলি অনুসরণ করুন।
পাইথন
- আপনার পাইথন অ্যাপটিতে ফায়ারবেস অ্যাডমিন এসডিকে যুক্ত করুন:
pip install --upgrade firebase-admin
: - আপনার পরিবেশে যথাযথ শংসাপত্রগুলির সাথে ক্লাউড ফায়ারস্টোর শুরু করতে নীচের নির্দেশিকাগুলি অনুসরণ করুন।
সি ++
- আপনার সি ++ প্রকল্পে ফায়ারবেস যুক্ত করার জন্য নির্দেশাবলী অনুসরণ করুন।
- অ্যান্ড্রয়েডের জন্য সি ++ ইন্টারফেস।
- গ্রেডল নির্ভরতা। আপনার মডিউলটিতে (অ্যাপ্লিকেশন-স্তরের) গ্রেডল ফাইল (সাধারণত
app/build.gradle
) এ নিম্নলিখিতগুলি যুক্ত করুন:android.defaultConfig.externalNativeBuild.cmake { arguments "-DFIREBASE_CPP_SDK_DIR=$gradle.firebase_cpp_sdk_dir" } apply from: "$gradle.firebase_cpp_sdk_dir/Android/firebase_dependencies.gradle" firebaseCpp.dependencies { // earlier entries auth firestore }
- বাইনারি নির্ভরতা। একইভাবে, বাইনারি নির্ভরতা পাওয়ার প্রস্তাবিত
CMakeLists.txt
আপনারCMakeLists.txt
ফাইলটিতে নিম্নলিখিতগুলি যুক্ত করা উচিত:add_subdirectory(${FIREBASE_CPP_SDK_DIR} bin/ EXCLUDE_FROM_ALL) set(firebase_libs firebase_auth firebase_firestore firebase_app) # Replace the target name below with the actual name of your target, # for example, "native-lib". target_link_libraries(${YOUR_TARGET_NAME_HERE} "${firebase_libs}")
- ডেস্কটপ ইন্টিগ্রেশন সেট আপ করতে, আপনার সি ++ প্রকল্পে ফায়ারবেস যুক্ত করুন ।
.ক্য
- আপনার ইউনিটি প্রকল্পে ফায়ারবেস যুক্ত করার জন্য নির্দেশাবলী অনুসরণ করুন ।
- অ্যান্ড্রয়েডের জন্য ityক্য ইন্টারফেস।
- ফাইল> বিল্ড সেটিংস নির্বাচন করুন
- 'প্ল্যাটফর্ম' কে 'অ্যান্ড্রয়েড' এ স্যুইচ করুন এবং 'প্ল্যাটফর্ম স্যুইচ করুন' ক্লিক করুন
- 'প্লেয়ার সেটিংস…' ক্লিক করুন
- প্রধান Unক্য ইউআইতে, 'অ্যান্ড্রয়েডের জন্য সেটিংস' এর অধীনে, 'প্রকাশনা সেটিংস' নির্বাচন করুন
- 'মিনিফাই' বিভাগের অধীনে, রিলিজ এবং ডিবাগ সেটিংস উভয়ই 'না' থেকে 'প্রোগুয়ার্ড' এ পরিবর্তন করুন
অ্যান্ড্রয়েডের জন্য বিল্ডিং করার সময়, অ্যান্ড্রয়েড ডেক্স সীমাটি এড়াতে প্রোগর্ডিং সক্ষম করুন। এটি করার জন্য, ইউনিটির সম্পাদক:
নোড.জেএস
- আপনার অ্যাপে ফায়ারবেস অ্যাডমিন এসডিকে যুক্ত করুন:
npm install firebase-admin --save
- আপনার পরিবেশে যথাযথ শংসাপত্রগুলির সাথে ক্লাউড ফায়ারস্টোর শুরু করতে নীচের নির্দেশিকাগুলি অনুসরণ করুন।
যাওয়া
- আপনার গো অ্যাপ্লিকেশনটিতে ফায়ারবেস অ্যাডমিন এসডিকে যুক্ত করুন:
go get firebase.google.com/go
- আপনার পরিবেশে যথাযথ শংসাপত্রগুলির সাথে ক্লাউড ফায়ারস্টোর শুরু করতে নীচের নির্দেশিকাগুলি অনুসরণ করুন।
পিএইচপি
- ক্লাউড ফায়ার স্টোর ক্লায়েন্ট লাইব্রেরি (জাভা, নোড.জেএস, পাইথন, গো, পিএইচপি, সি # এবং রুবি) প্রমাণীকরণের জন্য গুগল অ্যাপ্লিকেশন ডিফল্ট শংসাপত্রগুলি ব্যবহার করে।
- আপনার বিকাশ পরিবেশ থেকে প্রমাণীকরণ করতে, একটি JSON পরিষেবা অ্যাকাউন্ট কী ফাইলটিতে নির্দেশ করতে
GOOGLE_APPLICATION_CREDENTIALS
পরিবেশের পরিবর্তনশীল সেট করুন। আপনি API কনসোল শংসাপত্রের পৃষ্ঠাতে একটি কী ফাইল তৈরি করতে পারেন।export GOOGLE_APPLICATION_CREDENTIALS="path/to/your/keyfile.json"
- আপনার উত্পাদনের পরিবেশে, আপনি যদি ক্লাউড ফায়ারস্টোরের জন্য ব্যবহার করেন একই প্রকল্পটি ব্যবহার করে অ্যাপ্লিকেশন ইঞ্জিন বা কম্পিউট ইঞ্জিনে আপনার অ্যাপ্লিকেশনটি চালিত করেন তবে আপনাকে প্রমাণীকরণের প্রয়োজন হবে না। অন্যথায়, একটি পরিষেবা অ্যাকাউন্ট সেট আপ করুন ।
- আপনার বিকাশ পরিবেশ থেকে প্রমাণীকরণ করতে, একটি JSON পরিষেবা অ্যাকাউন্ট কী ফাইলটিতে নির্দেশ করতে
- পিএইচপি-র জন্য জিআরপিসি এক্সটেনশন ইনস্টল করুন এবং সক্ষম করুন, যা আপনাকে ক্লায়েন্ট লাইব্রেরি ব্যবহার করতে হবে।
- আপনার অ্যাপ্লিকেশনটিতে ক্লাউড ফায়ারস্টোর পিএইচপি লাইব্রেরি যুক্ত করুন:
composer require google/cloud-firestore
সি #
- ক্লাউড ফায়ার স্টোর ক্লায়েন্ট লাইব্রেরি (জাভা, নোড.জেএস, পাইথন, গো, পিএইচপি, সি # এবং রুবি) প্রমাণীকরণের জন্য গুগল অ্যাপ্লিকেশন ডিফল্ট শংসাপত্রগুলি ব্যবহার করে।
- আপনার বিকাশ পরিবেশ থেকে প্রমাণীকরণ করতে, একটি JSON পরিষেবা অ্যাকাউন্ট কী ফাইলটিতে নির্দেশ করতে
GOOGLE_APPLICATION_CREDENTIALS
পরিবেশের পরিবর্তনশীল সেট করুন। আপনি API কনসোল শংসাপত্রের পৃষ্ঠাতে একটি কী ফাইল তৈরি করতে পারেন।export GOOGLE_APPLICATION_CREDENTIALS="path/to/your/keyfile.json"
- আপনার উত্পাদনের পরিবেশে, আপনি যদি ক্লাউড ফায়ারস্টোরের জন্য ব্যবহার করেন একই প্রকল্পটি ব্যবহার করে অ্যাপ্লিকেশন ইঞ্জিন বা কম্পিউট ইঞ্জিনে আপনার অ্যাপ্লিকেশনটি চালিত করেন তবে আপনাকে প্রমাণীকরণের প্রয়োজন হবে না। অন্যথায়, একটি পরিষেবা অ্যাকাউন্ট সেট আপ করুন ।
- আপনার বিকাশ পরিবেশ থেকে প্রমাণীকরণ করতে, একটি JSON পরিষেবা অ্যাকাউন্ট কী ফাইলটিতে নির্দেশ করতে
- আপনার
.csproj
ফাইলে আপনার অ্যাপ্লিকেশনটিতে ক্লাউড ফায়ারস্টোর সি # লাইব্রেরি.csproj
করুন:<ItemGroup> <PackageReference Include="Google.Cloud.Firestore" Version="1.1.0-beta01" /> </ItemGroup>
- আপনার টু নিম্নলিখিত যোগ
Program.cs
ফাইল:using Google.Cloud.Firestore;
রুবি
- ক্লাউড ফায়ার স্টোর ক্লায়েন্ট লাইব্রেরি (জাভা, নোড.জেএস, পাইথন, গো, পিএইচপি, সি # এবং রুবি) প্রমাণীকরণের জন্য গুগল অ্যাপ্লিকেশন ডিফল্ট শংসাপত্রগুলি ব্যবহার করে।
- আপনার বিকাশ পরিবেশ থেকে প্রমাণীকরণ করতে, একটি JSON পরিষেবা অ্যাকাউন্ট কী ফাইলটিতে নির্দেশ করতে
GOOGLE_APPLICATION_CREDENTIALS
পরিবেশের পরিবর্তনশীল সেট করুন। আপনি API কনসোল শংসাপত্রের পৃষ্ঠাতে একটি কী ফাইল তৈরি করতে পারেন।export GOOGLE_APPLICATION_CREDENTIALS="path/to/your/keyfile.json"
- আপনার উত্পাদনের পরিবেশে, আপনি যদি ক্লাউড ফায়ারস্টোরের জন্য ব্যবহার করেন একই প্রকল্পটি ব্যবহার করে অ্যাপ্লিকেশন ইঞ্জিন বা কম্পিউট ইঞ্জিনে আপনার অ্যাপ্লিকেশনটি চালিত করেন তবে আপনাকে প্রমাণীকরণের প্রয়োজন হবে না। অন্যথায়, একটি পরিষেবা অ্যাকাউন্ট সেট আপ করুন ।
- আপনার বিকাশ পরিবেশ থেকে প্রমাণীকরণ করতে, একটি JSON পরিষেবা অ্যাকাউন্ট কী ফাইলটিতে নির্দেশ করতে
- আপনার
Gemfile
: অ্যাপ্লিকেশনটিতে ক্লাউড ফায়ারস্টোর রুবি লাইব্রেরিGemfile
:gem "google-cloud-firestore"
- আপনার
Gemfile
থেকে নির্ভরতা ইনস্টল করুন:bundle install
ব্যবহার করে
ক্লাউড ফায়ার স্টোর শুরু করুন
ক্লাউড ফায়ার স্টোরের একটি উদাহরণ শুরু করুন:
ওয়েব
// Initialize Cloud Firestore through Firebase firebase.initializeApp({ apiKey: '### FIREBASE API KEY ###', authDomain: '### FIREBASE AUTH DOMAIN ###', projectId: '### CLOUD FIRESTORE PROJECT ID ###' }); var db = firebase.firestore();আপনার ওয়েব অ্যাপ্লিকেশনটির `ফায়ারবেস কনফিগ`-এ` প্রাথমিককরণ অ্যাপ্লিকেশনটির মানগুলি পাওয়া যাবে ` ডিভাইসটির সংযোগ হারালে ডেটা ধরে রাখতে, অফলাইন ডেটা ডকুমেন্টেশন সক্ষম করুন দেখুন।
সুইফট
import Firebase FirebaseApp.configure() let db = Firestore.firestore()
উদ্দেশ্য গ
@import Firebase; // Use Firebase library to configure APIs [FIRApp configure]; FIRFirestore *defaultFirestore = [FIRFirestore firestore];
জাভা
// Access a Cloud Firestore instance from your Activity FirebaseFirestore db = FirebaseFirestore.getInstance();
কোটলিন + কেটিএক্স
// Access a Cloud Firestore instance from your Activity val db = Firebase.firestore
জাভা
ক্লাউড ফায়ারস্টোর এসডিকে আপনার পরিবেশের উপর নির্ভর করে বিভিন্ন উপায়ে শুরু করা হয়েছে। নীচে সবচেয়ে সাধারণ পদ্ধতি রয়েছে। সম্পূর্ণ রেফারেন্সের জন্য, অ্যাডমিন এসডিকে শুরু করুন দেখুন।import com.google.auth.oauth2.GoogleCredentials; import com.google.cloud.firestore.Firestore; import com.google.firebase.FirebaseApp; import com.google.firebase.FirebaseOptions; // Use the application default credentials GoogleCredentials credentials = GoogleCredentials.getApplicationDefault(); FirebaseOptions options = new FirebaseOptions.Builder() .setCredentials(credentials) .setProjectId(projectId) .build(); FirebaseApp.initializeApp(options); Firestore db = FirestoreClient.getFirestore();এ সূচনা করুন
নিজের সার্ভারে ফায়ারবেস অ্যাডমিন এসডিকে ব্যবহার করতে একটি পরিষেবা অ্যাকাউন্ট ব্যবহার করুন।
ক্লাউড প্ল্যাটফর্ম কনসোলের আইএএম এবং প্রশাসক> পরিষেবা অ্যাকাউন্টগুলিতে যান। একটি নতুন ব্যক্তিগত কী তৈরি করুন এবং JSON ফাইলটি সংরক্ষণ করুন। তারপরে এসডিকে আরম্ভ করার জন্য ফাইলটি ব্যবহার করুন:
import com.google.auth.oauth2.GoogleCredentials; import com.google.cloud.firestore.Firestore; import com.google.firebase.FirebaseApp; import com.google.firebase.FirebaseOptions; // Use a service account InputStream serviceAccount = new FileInputStream("path/to/serviceAccount.json"); GoogleCredentials credentials = GoogleCredentials.fromStream(serviceAccount); FirebaseOptions options = new FirebaseOptions.Builder() .setCredentials(credentials) .build(); FirebaseApp.initializeApp(options); Firestore db = FirestoreClient.getFirestore();
পাইথন
ক্লাউড ফায়ারস্টোর এসডিকে আপনার পরিবেশের উপর নির্ভর করে বিভিন্ন উপায়ে শুরু করা হয়েছে। নীচে সবচেয়ে সাধারণ পদ্ধতি রয়েছে। সম্পূর্ণ রেফারেন্সের জন্য, অ্যাডমিন এসডিকে শুরু করুন দেখুন।import firebase_admin from firebase_admin import credentials from firebase_admin import firestore # Use the application default credentials cred = credentials.ApplicationDefault() firebase_admin.initialize_app(cred, { 'projectId': project_id, }) db = firestore.client()এ শুরু করুন
নিজের সার্ভারে ফায়ারবেস অ্যাডমিন এসডিকে ব্যবহার করতে একটি পরিষেবা অ্যাকাউন্ট ব্যবহার করুন।
ক্লাউড প্ল্যাটফর্ম কনসোলের আইএএম এবং প্রশাসক> পরিষেবা অ্যাকাউন্টগুলিতে যান। একটি নতুন ব্যক্তিগত কী তৈরি করুন এবং JSON ফাইলটি সংরক্ষণ করুন। তারপরে এসডিকে আরম্ভ করার জন্য ফাইলটি ব্যবহার করুন:
import firebase_admin from firebase_admin import credentials from firebase_admin import firestore # Use a service account cred = credentials.Certificate('path/to/serviceAccount.json') firebase_admin.initialize_app(cred) db = firestore.client()
সি ++
// Make sure the call to `Create()` happens some time before you call Firestore::GetInstance(). App::Create(); Firestore* db = Firestore::GetInstance();
নোড.জেএস
ক্লাউড ফায়ারস্টোর এসডিকে আপনার পরিবেশের উপর নির্ভর করে বিভিন্ন উপায়ে শুরু করা হয়েছে। নীচে সবচেয়ে সাধারণ পদ্ধতি রয়েছে। সম্পূর্ণ রেফারেন্সের জন্য, অ্যাডমিন এসডিকে শুরু করুন দেখুন।- ক্লাউড ফাংশনগুলি
const admin = require('firebase-admin'); admin.initializeApp(); const db = admin.firestore();
এ শুরু করুন - গুগল ক্লাউড প্ল্যাটফর্ম
const admin = require('firebase-admin'); admin.initializeApp({ credential: admin.credential.applicationDefault() }); const db = admin.firestore();
এ শুরু করুন - আপনার নিজের সার্ভারে আরম্ভ করুন
আপনার নিজস্ব সার্ভারে (বা অন্য কোনও নোড.জেএস পরিবেশ) ফায়ারবেস অ্যাডমিন এসডিকে ব্যবহার করতে একটি পরিষেবা অ্যাকাউন্ট ব্যবহার করুন। ক্লাউড প্ল্যাটফর্ম কনসোলের আইএএম এবং প্রশাসক> পরিষেবা অ্যাকাউন্টগুলিতে যান। একটি নতুন ব্যক্তিগত কী তৈরি করুন এবং JSON ফাইলটি সংরক্ষণ করুন। তারপরে এসডিকে আরম্ভ করার জন্য ফাইলটি ব্যবহার করুন:
const admin = require('firebase-admin'); const serviceAccount = require('./path/to/serviceAccountKey.json'); admin.initializeApp({ credential: admin.credential.cert(serviceAccount) }); const db = admin.firestore();
যাওয়া
ক্লাউড ফায়ারস্টোর এসডিকে আপনার পরিবেশের উপর নির্ভর করে বিভিন্ন উপায়ে শুরু করা হয়েছে। নীচে সবচেয়ে সাধারণ পদ্ধতি রয়েছে। সম্পূর্ণ রেফারেন্সের জন্য, অ্যাডমিন এসডিকে শুরু করুন দেখুন।import ( "log" firebase "firebase.google.com/go" "google.golang.org/api/option" ) // Use the application default credentials ctx := context.Background() conf := &firebase.Config{ProjectID: projectID} app, err := firebase.NewApp(ctx, conf) if err != nil { log.Fatalln(err) } client, err := app.Firestore(ctx) if err != nil { log.Fatalln(err) } defer client.Close()এ শুরু করুন
নিজের সার্ভারে ফায়ারবেস অ্যাডমিন এসডিকে ব্যবহার করতে একটি পরিষেবা অ্যাকাউন্ট ব্যবহার করুন।
ক্লাউড প্ল্যাটফর্ম কনসোলের আইএএম এবং প্রশাসক> পরিষেবা অ্যাকাউন্টগুলিতে যান। একটি নতুন ব্যক্তিগত কী তৈরি করুন এবং JSON ফাইলটি সংরক্ষণ করুন। তারপরে এসডিকে আরম্ভ করার জন্য ফাইলটি ব্যবহার করুন:
import ( "log" firebase "firebase.google.com/go" "google.golang.org/api/option" ) // Use a service account ctx := context.Background() sa := option.WithCredentialsFile("path/to/serviceAccount.json") app, err := firebase.NewApp(ctx, nil, sa) if err != nil { log.Fatalln(err) } client, err := app.Firestore(ctx) if err != nil { log.Fatalln(err) } defer client.Close()
পিএইচপি
use Google\Cloud\Firestore\FirestoreClient; /** * Initialize Cloud Firestore with default project ID. * ``` * initialize(); * ``` */ function initialize() { // Create the Cloud Firestore client $db = new FirestoreClient(); printf('Created Cloud Firestore client with default project ID.' . PHP_EOL); }
.ক্য
using Firebase.Firestore; using Firebase.Extensions; FirebaseFirestore db = FirebaseFirestore.DefaultInstance;
সি #
FirestoreDb db = FirestoreDb.Create(project); Console.WriteLine("Created Cloud Firestore client with project ID: {0}", project);
রুবি
require "google/cloud/firestore" firestore = Google::Cloud::Firestore.new project_id: project_id puts "Created Cloud Firestore client with given project ID."
ডেটা যুক্ত করুন
ক্লাউড ফায়ার স্টোর ডকুমেন্টগুলিতে ডেটা সঞ্চয় করে, যা সংগ্রহে সঞ্চিত থাকে। ক্লাউড ফায়ার স্টোর আপনি প্রথম বার যখন নথিতে ডেটা যুক্ত করেন নিখুঁতভাবে সংগ্রহ এবং নথি তৈরি করে। আপনার স্পষ্টভাবে সংগ্রহ বা দস্তাবেজ তৈরি করার দরকার নেই।
নিম্নলিখিত উদাহরণ কোডটি ব্যবহার করে একটি নতুন সংগ্রহ এবং একটি নথি তৈরি করুন।
ওয়েব
db.collection("users").add({ first: "Ada", last: "Lovelace", born: 1815 }) .then(function(docRef) { console.log("Document written with ID: ", docRef.id); }) .catch(function(error) { console.error("Error adding document: ", error); });
সুইফট
// Add a new document with a generated ID var ref: DocumentReference? = nil ref = db.collection("users").addDocument(data: [ "first": "Ada", "last": "Lovelace", "born": 1815 ]) { err in if let err = err { print("Error adding document: \(err)") } else { print("Document added with ID: \(ref!.documentID)") } }
উদ্দেশ্য গ
// Add a new document with a generated ID __block FIRDocumentReference *ref = [[self.db collectionWithPath:@"users"] addDocumentWithData:@{ @"first": @"Ada", @"last": @"Lovelace", @"born": @1815 } completion:^(NSError * _Nullable error) { if (error != nil) { NSLog(@"Error adding document: %@", error); } else { NSLog(@"Document added with ID: %@", ref.documentID); } }];
জাভা
// Create a new user with a first and last name Map<String, Object> user = new HashMap<>(); user.put("first", "Ada"); user.put("last", "Lovelace"); user.put("born", 1815); // Add a new document with a generated ID db.collection("users") .add(user) .addOnSuccessListener(new OnSuccessListener<DocumentReference>() { @Override public void onSuccess(DocumentReference documentReference) { Log.d(TAG, "DocumentSnapshot added with ID: " + documentReference.getId()); } }) .addOnFailureListener(new OnFailureListener() { @Override public void onFailure(@NonNull Exception e) { Log.w(TAG, "Error adding document", e); } });
কোটলিন + কেটিএক্স
// Create a new user with a first and last name val user = hashMapOf( "first" to "Ada", "last" to "Lovelace", "born" to 1815 ) // Add a new document with a generated ID db.collection("users") .add(user) .addOnSuccessListener { documentReference -> Log.d(TAG, "DocumentSnapshot added with ID: ${documentReference.id}") } .addOnFailureListener { e -> Log.w(TAG, "Error adding document", e) }
জাভা
DocumentReference docRef = db.collection("users").document("alovelace"); // Add document data with id "alovelace" using a hashmap Map<String, Object> data = new HashMap<>(); data.put("first", "Ada"); data.put("last", "Lovelace"); data.put("born", 1815); //asynchronously write data ApiFuture<WriteResult> result = docRef.set(data); // ... // result.get() blocks on response System.out.println("Update time : " + result.get().getUpdateTime());
পাইথন
doc_ref = db.collection(u'users').document(u'alovelace') doc_ref.set({ u'first': u'Ada', u'last': u'Lovelace', u'born': 1815 })
সি ++
// Add a new document with a generated ID Future<DocumentReference> user_ref = db->Collection("users").Add({{"first", FieldValue::String("Ada")}, {"last", FieldValue::String("Lovelace")}, {"born", FieldValue::Integer(1815)}}); user_ref.OnCompletion([](const Future<DocumentReference>& future) { if (future.error() == Error::kErrorOk) { std::cout << "DocumentSnapshot added with ID: " << future.result()->id() << '\n'; } else { std::cout << "Error adding document: " << future.error_message() << '\n'; } });
নোড.জেএস
const docRef = db.collection('users').doc('alovelace'); await docRef.set({ first: 'Ada', last: 'Lovelace', born: 1815 });
যাওয়া
_, _, err := client.Collection("users").Add(ctx, map[string]interface{}{ "first": "Ada", "last": "Lovelace", "born": 1815, }) if err != nil { log.Fatalf("Failed adding alovelace: %v", err) }
পিএইচপি
$docRef = $db->collection('users')->document('lovelace'); $docRef->set([ 'first' => 'Ada', 'last' => 'Lovelace', 'born' => 1815 ]); printf('Added data to the lovelace document in the users collection.' . PHP_EOL);
.ক্য
DocumentReference docRef = db.Collection("users").Document("alovelace"); Dictionary<string, object> user = new Dictionary<string, object> { { "First", "Ada" }, { "Last", "Lovelace" }, { "Born", 1815 }, }; docRef.SetAsync(user).ContinueWithOnMainThread(task => { Debug.Log("Added data to the alovelace document in the users collection."); });
সি #
DocumentReference docRef = db.Collection("users").Document("alovelace"); Dictionary<string, object> user = new Dictionary<string, object> { { "First", "Ada" }, { "Last", "Lovelace" }, { "Born", 1815 } }; await docRef.SetAsync(user);
রুবি
doc_ref = firestore.doc "#{collection_path}/alovelace" doc_ref.set( first: "Ada", last: "Lovelace", born: 1815 ) puts "Added data to the alovelace document in the users collection."
এখন users
সংগ্রহে অন্য একটি দস্তাবেজ যুক্ত করুন। লক্ষ্য করুন যে এই নথিতে একটি মূল-মান জুটি (মাঝের নাম) রয়েছে যা প্রথম নথিতে উপস্থিত হয় না। কোনও সংগ্রহের নথিতে তথ্যের বিভিন্ন সেট থাকতে পারে।
ওয়েব
// Add a second document with a generated ID. db.collection("users").add({ first: "Alan", middle: "Mathison", last: "Turing", born: 1912 }) .then(function(docRef) { console.log("Document written with ID: ", docRef.id); }) .catch(function(error) { console.error("Error adding document: ", error); });
সুইফট
// Add a second document with a generated ID. ref = db.collection("users").addDocument(data: [ "first": "Alan", "middle": "Mathison", "last": "Turing", "born": 1912 ]) { err in if let err = err { print("Error adding document: \(err)") } else { print("Document added with ID: \(ref!.documentID)") } }
উদ্দেশ্য গ
// Add a second document with a generated ID. __block FIRDocumentReference *ref = [[self.db collectionWithPath:@"users"] addDocumentWithData:@{ @"first": @"Alan", @"middle": @"Mathison", @"last": @"Turing", @"born": @1912 } completion:^(NSError * _Nullable error) { if (error != nil) { NSLog(@"Error adding document: %@", error); } else { NSLog(@"Document added with ID: %@", ref.documentID); } }];
জাভা
// Create a new user with a first, middle, and last name Map<String, Object> user = new HashMap<>(); user.put("first", "Alan"); user.put("middle", "Mathison"); user.put("last", "Turing"); user.put("born", 1912); // Add a new document with a generated ID db.collection("users") .add(user) .addOnSuccessListener(new OnSuccessListener<DocumentReference>() { @Override public void onSuccess(DocumentReference documentReference) { Log.d(TAG, "DocumentSnapshot added with ID: " + documentReference.getId()); } }) .addOnFailureListener(new OnFailureListener() { @Override public void onFailure(@NonNull Exception e) { Log.w(TAG, "Error adding document", e); } });
কোটলিন + কেটিএক্স
// Create a new user with a first, middle, and last name val user = hashMapOf( "first" to "Alan", "middle" to "Mathison", "last" to "Turing", "born" to 1912 ) // Add a new document with a generated ID db.collection("users") .add(user) .addOnSuccessListener { documentReference -> Log.d(TAG, "DocumentSnapshot added with ID: ${documentReference.id}") } .addOnFailureListener { e -> Log.w(TAG, "Error adding document", e) }
জাভা
DocumentReference docRef = db.collection("users").document("aturing"); // Add document data with an additional field ("middle") Map<String, Object> data = new HashMap<>(); data.put("first", "Alan"); data.put("middle", "Mathison"); data.put("last", "Turing"); data.put("born", 1912); ApiFuture<WriteResult> result = docRef.set(data); System.out.println("Update time : " + result.get().getUpdateTime());
পাইথন
doc_ref = db.collection(u'users').document(u'aturing') doc_ref.set({ u'first': u'Alan', u'middle': u'Mathison', u'last': u'Turing', u'born': 1912 })
সি ++
db->Collection("users") .Add({{"first", FieldValue::String("Alan")}, {"middle", FieldValue::String("Mathison")}, {"last", FieldValue::String("Turing")}, {"born", FieldValue::Integer(1912)}}) .OnCompletion([](const Future<DocumentReference>& future) { if (future.error() == Error::kErrorOk) { std::cout << "DocumentSnapshot added with ID: " << future.result()->id() << '\n'; } else { std::cout << "Error adding document: " << future.error_message() << '\n'; } });
নোড.জেএস
const aTuringRef = db.collection('users').doc('aturing'); await aTuringRef.set({ 'first': 'Alan', 'middle': 'Mathison', 'last': 'Turing', 'born': 1912 });
যাওয়া
_, _, err = client.Collection("users").Add(ctx, map[string]interface{}{ "first": "Alan", "middle": "Mathison", "last": "Turing", "born": 1912, }) if err != nil { log.Fatalf("Failed adding aturing: %v", err) }
পিএইচপি
$docRef = $db->collection('users')->document('aturing'); $docRef->set([ 'first' => 'Alan', 'middle' => 'Mathison', 'last' => 'Turing', 'born' => 1912 ]); printf('Added data to the aturing document in the users collection.' . PHP_EOL);
.ক্য
DocumentReference docRef = db.Collection("users").Document("aturing"); Dictionary<string, object> user = new Dictionary<string, object> { { "First", "Alan" }, { "Middle", "Mathison" }, { "Last", "Turing" }, { "Born", 1912 } }; docRef.SetAsync(user).ContinueWithOnMainThread(task => { Debug.Log("Added data to the aturing document in the users collection."); });
সি #
DocumentReference docRef = db.Collection("users").Document("aturing"); Dictionary<string, object> user = new Dictionary<string, object> { { "First", "Alan" }, { "Middle", "Mathison" }, { "Last", "Turing" }, { "Born", 1912 } }; await docRef.SetAsync(user);
রুবি
doc_ref = firestore.doc "#{collection_path}/aturing" doc_ref.set( first: "Alan", middle: "Mathison", last: "Turing", born: 1912 ) puts "Added data to the aturing document in the users collection."
তথ্য পড়ুন
আপনি ক্লাউড ফায়ার স্টোরে ডেটা যুক্ত করেছেন তা দ্রুত যাচাই করতে, ফায়ারবেস কনসোলে ডেটা ভিউয়ারটি ব্যবহার করুন।
পুরো সংগ্রহটি পুনরুদ্ধার করতে আপনি "get" পদ্ধতিটিও ব্যবহার করতে পারেন।
ওয়েব
db.collection("users").get().then((querySnapshot) => { querySnapshot.forEach((doc) => { console.log(`${doc.id} => ${doc.data()}`); }); });
সুইফট
db.collection("users").getDocuments() { (querySnapshot, err) in if let err = err { print("Error getting documents: \(err)") } else { for document in querySnapshot!.documents { print("\(document.documentID) => \(document.data())") } } }
উদ্দেশ্য গ
[[self.db collectionWithPath:@"users"] getDocumentsWithCompletion:^(FIRQuerySnapshot * _Nullable snapshot, NSError * _Nullable error) { if (error != nil) { NSLog(@"Error getting documents: %@", error); } else { for (FIRDocumentSnapshot *document in snapshot.documents) { NSLog(@"%@ => %@", document.documentID, document.data); } } }];
জাভা
db.collection("users") .get() .addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() { @Override public void onComplete(@NonNull Task<QuerySnapshot> task) { if (task.isSuccessful()) { for (QueryDocumentSnapshot document : task.getResult()) { Log.d(TAG, document.getId() + " => " + document.getData()); } } else { Log.w(TAG, "Error getting documents.", task.getException()); } } });
কোটলিন + কেটিএক্স
db.collection("users") .get() .addOnSuccessListener { result -> for (document in result) { Log.d(TAG, "${document.id} => ${document.data}") } } .addOnFailureListener { exception -> Log.w(TAG, "Error getting documents.", exception) }
জাভা
// asynchronously retrieve all users ApiFuture<QuerySnapshot> query = db.collection("users").get(); // ... // query.get() blocks on response QuerySnapshot querySnapshot = query.get(); List<QueryDocumentSnapshot> documents = querySnapshot.getDocuments(); for (QueryDocumentSnapshot document : documents) { System.out.println("User: " + document.getId()); System.out.println("First: " + document.getString("first")); if (document.contains("middle")) { System.out.println("Middle: " + document.getString("middle")); } System.out.println("Last: " + document.getString("last")); System.out.println("Born: " + document.getLong("born")); }
পাইথন
users_ref = db.collection(u'users') docs = users_ref.stream() for doc in docs: print(f'{doc.id} => {doc.to_dict()}')
সি ++
Future<QuerySnapshot> users = db->Collection("users").Get(); users.OnCompletion([](const Future<QuerySnapshot>& future) { if (future.error() == Error::kErrorOk) { for (const DocumentSnapshot& document : future.result()->documents()) { std::cout << document << '\n'; } } else { std::cout << "Error getting documents: " << future.error_message() << '\n'; } });
নোড.জেএস
const snapshot = await db.collection('users').get(); snapshot.forEach((doc) => { console.log(doc.id, '=>', doc.data()); });
যাওয়া
iter := client.Collection("users").Documents(ctx) for { doc, err := iter.Next() if err == iterator.Done { break } if err != nil { log.Fatalf("Failed to iterate: %v", err) } fmt.Println(doc.Data()) }
পিএইচপি
$usersRef = $db->collection('users'); $snapshot = $usersRef->documents(); foreach ($snapshot as $user) { printf('User: %s' . PHP_EOL, $user->id()); printf('First: %s' . PHP_EOL, $user['first']); if (!empty($user['middle'])) { printf('Middle: %s' . PHP_EOL, $user['middle']); } printf('Last: %s' . PHP_EOL, $user['last']); printf('Born: %d' . PHP_EOL, $user['born']); printf(PHP_EOL); } printf('Retrieved and printed out all documents from the users collection.' . PHP_EOL);
.ক্য
CollectionReference usersRef = db.Collection("users"); usersRef.GetSnapshotAsync().ContinueWithOnMainThread(task => { QuerySnapshot snapshot = task.Result; foreach (DocumentSnapshot document in snapshot.Documents) { Debug.Log(String.Format("User: {0}", document.Id)); Dictionary<string, object> documentDictionary = document.ToDictionary(); Debug.Log(String.Format("First: {0}", documentDictionary["First"])); if (documentDictionary.ContainsKey("Middle")) { Debug.Log(String.Format("Middle: {0}", documentDictionary["Middle"])); } Debug.Log(String.Format("Last: {0}", documentDictionary["Last"])); Debug.Log(String.Format("Born: {0}", documentDictionary["Born"])); } Debug.Log("Read all data from the users collection."); });
সি #
CollectionReference usersRef = db.Collection("users"); QuerySnapshot snapshot = await usersRef.GetSnapshotAsync(); foreach (DocumentSnapshot document in snapshot.Documents) { Console.WriteLine("User: {0}", document.Id); Dictionary<string, object> documentDictionary = document.ToDictionary(); Console.WriteLine("First: {0}", documentDictionary["First"]); if (documentDictionary.ContainsKey("Middle")) { Console.WriteLine("Middle: {0}", documentDictionary["Middle"]); } Console.WriteLine("Last: {0}", documentDictionary["Last"]); Console.WriteLine("Born: {0}", documentDictionary["Born"]); Console.WriteLine(); }
রুবি
users_ref = firestore.col collection_path users_ref.get do |user| puts "#{user.document_id} data: #{user.data}." end
আপনার ডেটা সুরক্ষিত করুন
আপনি যদি ওয়েব, অ্যান্ড্রয়েড বা আইওএস এসডিকে ব্যবহার করেন তবে ক্লাউড ফায়ার স্টোরে আপনার ডেটা সুরক্ষিত করতে ফায়ারবেস প্রমাণীকরণ এবং ক্লাউড ফায়ারস্টোর সুরক্ষা বিধিগুলি ব্যবহার করুন।
এখানে কিছু প্রাথমিক নিয়ম সেট রয়েছে যা আপনি শুরু করতে ব্যবহার করতে পারেন। আপনি কনসোলের নিয়ম ট্যাবে আপনার সুরক্ষা বিধিগুলি পরিবর্তন করতে পারেন।
প্রমাণ দরকার
// Allow read/write access on all documents to any user signed in to the application
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if request.auth != null;
}
}
}
লকড মোড
// Deny read/write access to all users under any conditions
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if false;
}
}
}
পরীক্ষা মোড
// Allow read/write access to all users under any conditions
// Warning: **NEVER** use this rule set in production; it allows
// anyone to overwrite your entire database.
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if true;
}
}
}
আপনি যদি একটি সার্ভার এসডিকে ব্যবহার করেন তবে ক্লাউড ফায়ার স্টোরে আপনার ডেটা সুরক্ষিত করতে পরিচয় এবং অ্যাক্সেস ম্যানেজমেন্ট (আইএএম) ব্যবহার করুন।
একটি ভিডিও টিউটোরিয়াল দেখুন
ক্লাউড ফায়ারস্টোর মোবাইল এবং ওয়েব ক্লায়েন্ট লাইব্রেরি দিয়ে শুরু করার বিষয়ে বিস্তারিত দিকনির্দেশের জন্য, নীচের একটি ভিডিও টিউটোরিয়াল দেখুন:
ওয়েব ভি 8
আইওএস
অ্যান্ড্রয়েড
আপনি ফায়ারবেস ইউটিউব চ্যানেলে আরও ভিডিও পেতে পারেন।
পরবর্তী পদক্ষেপ
নিম্নলিখিত বিষয়গুলি সহ আপনার জ্ঞানকে আরও গভীর করুন:
- কোডল্যাবস - অ্যান্ড্রয়েড , আইওএস বা ওয়েবের জন্য কোডল্যাব অনুসরণ করে একটি আসল অ্যাপে ক্লাউড ফায়ারস্টোর ব্যবহার করতে শিখুন।
- ডেটা মডেল - শ্রেণিবিন্যাস সম্পর্কিত ডেটা এবং উপ-সংগ্রহগুলি সহ ক্লাউড ফায়ার স্টোরে কীভাবে ডেটা স্ট্রাকচার করা হয় সে সম্পর্কে আরও জানুন।
- ডেটা যুক্ত করুন - ক্লাউড ফায়ার স্টোরে ডেটা তৈরি এবং আপডেট করার বিষয়ে আরও জানুন।
- ডেটা পান - কীভাবে ডেটা পুনরুদ্ধার করবেন সে সম্পর্কে আরও জানুন।
- সাধারণ এবং যৌগিক ক্যোয়ারীগুলি সম্পাদন করুন - কীভাবে সহজ এবং যৌগিক ক্যুরিয়াস চালাতে হয় তা শিখুন।
- অর্ডার এবং সীমাবদ্ধ ক্যোয়ারী কীভাবে আপনার প্রশ্নের দ্বারা ফিরিয়ে নেওয়া ডেটা অর্ডার এবং সীমাবদ্ধ করতে শিখুন।