সার্ভার ক্লায়েন্ট লাইব্রেরি ব্যবহার করে ফায়ারস্টোর এন্টারপ্রাইজ সংস্করণ দিয়ে শুরু করুন

এই কুইকস্টার্টটি আপনাকে দেখাবে কীভাবে Cloud Firestore সেট আপ করতে হয়, ডেটা যোগ করতে হয়, এবং তারপর জাভা, নোড.জেএস ও পাইথনের সার্ভার ক্লায়েন্ট লাইব্রেরি ব্যবহার করে কোর অপারেশন অথবা পাইপলাইন অপারেশনের মাধ্যমে Firebase কনসোলে আপনার যোগ করা ডেটা কোয়েরি করতে হয়।

আপনার ডেটাবেসে সম্পূর্ণ অ্যাক্সেসসহ বিশেষাধিকারপ্রাপ্ত সার্ভার পরিবেশ সেট আপ করতে এই ক্লায়েন্ট লাইব্রেরিগুলো ব্যবহার করুন।

একটি Cloud Firestore ডাটাবেস তৈরি করুন

  1. যদি আগে থেকে তৈরি করা না থাকে, তাহলে একটি Firebase প্রজেক্ট তৈরি করুন: Firebase কনসোলে , 'Add project'-এ ক্লিক করুন, তারপর একটি Firebase প্রজেক্ট তৈরি করতে বা বিদ্যমান Google Cloud প্রজেক্টে Firebase পরিষেবা যোগ করতে স্ক্রিনে দেওয়া নির্দেশাবলী অনুসরণ করুন।

  2. Firebase কনসোলে আপনার প্রজেক্টটি খুলুন। বাম প্যানেলে, 'Build' প্রসারিত করুন এবং তারপরে 'Firestore database' নির্বাচন করুন।

  3. ডাটাবেস তৈরি করুন -এ ক্লিক করুন।

  4. ডাটাবেস মোডের জন্য এন্টারপ্রাইজ নির্বাচন করুন।

  5. অপারেশন মোডের জন্য ফায়ারস্টোরের নেটিভ মোড নির্বাচন করুন, যা কোর এবং পাইপলাইন অপারেশন সমর্থন করে।

  6. আপনার ডেটাবেসের জন্য একটি অবস্থান নির্বাচন করুন।

  7. আপনার Cloud Firestore Security Rules জন্য একটি প্রারম্ভিক মোড নির্বাচন করুন:

    টেস্ট মোড

    মোবাইল এবং ওয়েব ক্লায়েন্ট লাইব্রেরি দিয়ে কাজ শুরু করার জন্য এটি ভালো, কিন্তু এর মাধ্যমে যে কেউ আপনার ডেটা পড়তে এবং মুছে ফেলতে পারে। পরীক্ষা করার পর, আপনার ডেটা সুরক্ষিত করুন’ অংশটি অবশ্যই পর্যালোচনা করে নেবেন।

    ওয়েব, অ্যাপল প্ল্যাটফর্ম বা অ্যান্ড্রয়েড এসডিকে দিয়ে কাজ শুরু করতে, টেস্ট মোড নির্বাচন করুন।

    উৎপাদন মোড

    মোবাইল এবং ওয়েব ক্লায়েন্ট থেকে সমস্ত রিড এবং রাইট অ্যাক্সেস নিষিদ্ধ করা হয়েছে। আপনার প্রমাণীকৃত অ্যাপ্লিকেশন সার্ভারগুলো (Node.js, Python, Java) এখনও আপনার ডেটাবেস অ্যাক্সেস করতে পারবে।

    আপনার প্রাথমিক Cloud Firestore Security Rules আপনার ডিফল্ট Cloud Firestore ডেটাবেসে প্রযোজ্য হবে। যদি আপনি আপনার প্রকল্পের জন্য একাধিক ডেটাবেস তৈরি করেন, তবে আপনি প্রতিটি ডেটাবেসের জন্য Cloud Firestore Security Rules প্রয়োগ করতে পারেন।

  8. তৈরি করুন- এ ক্লিক করুন।

আপনি যখন Cloud Firestore সক্রিয় করেন, তখন ক্লাউড এপিআই ম্যানেজার -এ থাকা এপিআই-টিও সক্রিয় হয়ে যায়।

আপনার উন্নয়ন পরিবেশ সেট আপ করুন

আপনার অ্যাপে প্রয়োজনীয় ডিপেন্ডেন্সি এবং ক্লায়েন্ট লাইব্রেরিগুলো যোগ করুন।

নোড.জেএস
  1. আপনার অ্যাপে Firebase Admin SDK যোগ করুন:
    npm install firebase-admin --save
  2. আপনার পরিবেশে সঠিক ক্রেডেনশিয়াল ব্যবহার করে Cloud Firestore চালু করতে নিচের নির্দেশাবলী অনুসরণ করুন।
পাইথন
  1. আপনার পাইথন অ্যাপে ফায়ারবেস অ্যাডমিন এসডিকে যোগ করুন:
    pip install --upgrade firebase-admin
  2. আপনার পরিবেশে সঠিক ক্রেডেনশিয়াল ব্যবহার করে Cloud Firestore চালু করতে নিচের নির্দেশাবলী অনুসরণ করুন।
জাভা
  1. আপনার অ্যাপে Firebase Admin SDK যোগ করুন:
    • গ্রেডল ব্যবহার করে:
      implementation 'com.google.firebase:firebase-admin:9.8.0'
    • Maven ব্যবহার করে:
      <dependency>
        <groupId>com.google.firebase</groupId>
        <artifactId>firebase-admin</artifactId>
        <version>9.8.0</version>
      </dependency>
           
  2. আপনার পরিবেশে সঠিক ক্রেডেনশিয়াল ব্যবহার করে Cloud Firestore চালু করতে নিচের নির্দেশাবলী অনুসরণ করুন।

Cloud Firestore শুরু করুন

Cloud Firestore একটি ইনস্ট্যান্স চালু করুন:

নোড.জেএস
আপনার পরিবেশের উপর নির্ভর করে Cloud Firestore এসডিকে বিভিন্ন উপায়ে চালু করা হয়। নিচে সবচেয়ে প্রচলিত পদ্ধতিগুলো দেওয়া হলো। সম্পূর্ণ তথ্যের জন্য, অ্যাডমিন এসডিকে চালু করুন (Initialize the Admin SDK) দেখুন।
  • Cloud Functions প্রারম্ভিকীকরণ করুন
    const { initializeApp, applicationDefault, cert } = require('firebase-admin/app');
    const { getFirestore, Timestamp, FieldValue, Filter } = require('firebase-admin/firestore');
    initializeApp();
    
    const db = getFirestore();
    
  • Google Cloud শুরু করুন
    const { initializeApp, applicationDefault, cert } = require('firebase-admin/app');
    const { getFirestore, Timestamp, FieldValue, Filter } = require('firebase-admin/firestore');
    initializeApp({
      credential: applicationDefault()
    });
    
    const db = getFirestore();
  • আপনার নিজের সার্ভারে শুরু করুন

    আপনার নিজের সার্ভারে (বা অন্য কোনো Node.js পরিবেশে) Firebase Admin SDK ব্যবহার করতে, একটি সার্ভিস অ্যাকাউন্ট ব্যবহার করুন। Google Cloud কনসোলে IAM & admin > Service accounts- এ যান। একটি নতুন প্রাইভেট কী তৈরি করুন এবং JSON ফাইলটি সংরক্ষণ করুন। তারপর SDK ইনিশিয়ালাইজ করতে ফাইলটি ব্যবহার করুন:

    const { initializeApp, applicationDefault, cert } = require('firebase-admin/app');
    const { getFirestore, Timestamp, FieldValue, Filter } = require('firebase-admin/firestore');
    const serviceAccount = require('./path/to/serviceAccountKey.json');
    
    initializeApp({
      credential: cert(serviceAccount)
    });
    
    const db = getFirestore();
    
পাইথন
আপনার পরিবেশের উপর নির্ভর করে Cloud Firestore এসডিকে বিভিন্ন উপায়ে চালু করা হয়। নিচে সবচেয়ে প্রচলিত পদ্ধতিগুলো দেওয়া হলো। সম্পূর্ণ তথ্যের জন্য, অ্যাডমিন এসডিকে চালু করুন (Initialize the Admin SDK) দেখুন।
  • Google Cloud শুরু করুন
    import firebase_admin
    from firebase_admin import firestore
    
    # Application Default credentials are automatically created.
    app = firebase_admin.initialize_app()
    db = firestore.client()

    এসডিকে চালু করার জন্য বিদ্যমান অ্যাপ্লিকেশনের ডিফল্ট ক্রেডেনশিয়ালও ব্যবহার করা যেতে পারে।

    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)
    db = firestore.client()
  • আপনার নিজের সার্ভারে শুরু করুন

    আপনার নিজের সার্ভারে Firebase Admin SDK ব্যবহার করতে একটি সার্ভিস অ্যাকাউন্ট ব্যবহার করুন।

    Google Cloud কনসোলে IAM & admin > Service accounts- এ যান। একটি নতুন প্রাইভেট কী তৈরি করুন এবং JSON ফাইলটি সংরক্ষণ করুন। তারপর SDK ইনিশিয়ালাইজ করতে ফাইলটি ব্যবহার করুন:

    import firebase_admin
    from firebase_admin import credentials
    from firebase_admin import firestore
    
    # Use a service account.
    cred = credentials.Certificate('path/to/serviceAccount.json')
    
    app = firebase_admin.initialize_app(cred)
    
    db = firestore.client()
  • জাভা
    আপনার পরিবেশের উপর নির্ভর করে Cloud Firestore এসডিকে বিভিন্ন উপায়ে চালু করা হয়। নিচে সবচেয়ে প্রচলিত পদ্ধতিগুলো দেওয়া হলো। সম্পূর্ণ তথ্যের জন্য, অ্যাডমিন এসডিকে চালু করুন (Initialize the Admin SDK) দেখুন।
  • Google Cloud শুরু করুন
    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();
  • আপনার নিজের সার্ভারে শুরু করুন

    আপনার নিজের সার্ভারে Firebase Admin SDK ব্যবহার করতে একটি সার্ভিস অ্যাকাউন্ট ব্যবহার করুন।

    Google Cloud কনসোলে IAM & admin > Service accounts- এ যান। একটি নতুন প্রাইভেট কী তৈরি করুন এবং JSON ফাইলটি সংরক্ষণ করুন। তারপর SDK ইনিশিয়ালাইজ করতে ফাইলটি ব্যবহার করুন:

    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();
  • কোর অপারেশন ব্যবহার করে ডেটা যোগ করুন

    ডেটা কোয়েরি করার জন্য কোর অপারেশন ও পাইপলাইন অপারেশন সম্পর্কে জানতে, কোর অপারেশন ব্যবহার করে আপনার ডাটাবেসে ডেটা যোগ করুন।

    Cloud Firestore ডেটা ডকুমেন্টে সংরক্ষণ করে, যা কালেকশনে সংরক্ষিত থাকে। আপনি যখন প্রথমবার কোনো ডকুমেন্টে ডেটা যোগ করেন, তখন Cloud Firestore স্বয়ংক্রিয়ভাবে কালেকশন এবং ডকুমেন্ট তৈরি করে। আপনাকে আলাদাভাবে কালেকশন বা ডকুমেন্ট তৈরি করার প্রয়োজন নেই।

    নিম্নলিখিত উদাহরণ কোড ব্যবহার করে একটি নতুন কালেকশন এবং একটি ডকুমেন্ট তৈরি করুন।

    নোড.জেএস
    const docRef = db.collection('users').doc('alovelace');
    
    await docRef.set({
      first: 'Ada',
      last: 'Lovelace',
      born: 1815
    });
    জাভা
    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("users").document("alovelace")
    doc_ref.set({"first": "Ada", "last": "Lovelace", "born": 1815})

    কোর অপারেশন ব্যবহার করে ডেটা পড়ুন

    আপনি Cloud Firestore ডেটা যোগ করেছেন কিনা, তা দ্রুত যাচাই করতে ফায়ারবেস কনসোলের ডেটা ভিউয়ার ব্যবহার করুন।

    সম্পূর্ণ কালেকশনটি পাওয়ার জন্য আপনি 'get' মেথডটিও ব্যবহার করতে পারেন।

    নোড.জেএস
    const snapshot = await db.collection('users').get();
    snapshot.forEach((doc) => {
      console.log(doc.id, '=>', doc.data());
    });
    পাইথন
    users_ref = db.collection("users")
    docs = users_ref.stream()
    
    for doc in docs:
        print(f"{doc.id} => {doc.to_dict()}")
    জাভা
    // 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"));
    }

    পাইপলাইন অপারেশন ব্যবহার করে ডেটা পড়ুন

    এখন আপনি পাইপলাইন কোয়েরির অভিজ্ঞতার সাথে কোর কোয়েরির অভিজ্ঞতার তুলনা করতে পারেন।

    নোড.জেএস
    const readDataPipeline = db.pipeline()
      .collection("users");
    
    // Execute the pipeline and handle the result
    try {
      const querySnapshot = await readDataPipeline.execute();
      querySnapshot.results.forEach((result) => {
        console.log(`${result.id} => ${result.data()}`);
      });
    } catch (error) {
        console.error("Error getting documents: ", error);
    }
    পাইথন
    pipeline = client.pipeline().collection("users")
    for result in pipeline.execute():
        print(f"{result.id} => {result.data()}")
    জাভা
    Pipeline pipeline = firestore.pipeline().collection("users");
    ApiFuture<Pipeline.Snapshot> future = pipeline.execute();
    for (com.google.cloud.firestore.PipelineResult result : future.get().getResults()) {
      System.out.println(result.getId() + " => " + result.getData());
    }
    // or, asynchronously
    pipeline.execute(
        new ApiStreamObserver<com.google.cloud.firestore.PipelineResult>() {
          @Override
          public void onNext(com.google.cloud.firestore.PipelineResult result) {
            System.out.println(result.getId() + " => " + result.getData());
          }
    
          @Override
          public void onError(Throwable t) {
            System.err.println(t);
          }
    
          @Override
          public void onCompleted() {
            System.out.println("done");
          }
        });

    পরবর্তী পদক্ষেপ

    নিম্নলিখিত বিষয়গুলির মাধ্যমে কোর এবং পাইপলাইন অপারেশন সম্পর্কে আপনার জ্ঞান আরও গভীর করুন: