सर्वर क्लाइंट लाइब्रेरी का इस्तेमाल करके, Firestore Enterprise Edition का इस्तेमाल शुरू करना

इस क्विकस्टार्ट में, Cloud Firestore को सेट अप करने, डेटा जोड़ने, और फिर Java, Node.js, और Python के लिए सर्वर क्लाइंट लाइब्रेरी का इस्तेमाल करके, Firebase कंसोल में जोड़े गए डेटा को क्वेरी करने का तरीका बताया गया है. इसके लिए, कोर ऑपरेशंस या पाइपलाइन ऑपरेशंस का इस्तेमाल किया जा सकता है.

इन क्लाइंट लाइब्रेरी का इस्तेमाल करके, अपने डेटाबेस को पूरी तरह से ऐक्सेस करने के लिए, खास अधिकारों वाले सर्वर एनवायरमेंट सेट अप करें..

Cloud Firestore डेटाबेस बनाना

  1. अगर आपने अब तक Firebase प्रोजेक्ट नहीं बनाया है, तो उसे बनाएं: Firebase कंसोल में, प्रोजेंक्ट जोड़ें पर क्लिक करें. इसके बाद, स्क्रीन पर दिए गए निर्देशों का पालन करके, Firebase प्रोजेक्ट बनाएं या मौजूदा Google Cloud प्रोजेक्ट में Firebase की सेवाएं जोड़ें.

  2. बाईं ओर मौजूद पैनल में, डेटाबेस और स्टोरेज > Firestore पर जाएं.

  3. डेटाबेस बनाएं पर क्लिक करें.

  4. डेटाबेस मोड के लिए, Enterprise चुनें.

  5. ऑपरेशन मोड के लिए, Firestore in Native Mode चुनें. यह मोड, कोर और पाइपलाइन ऑपरेशंस के साथ काम करता है.

  6. अपने डेटाबेस के लिए कोई जगह चुनें.

  7. Cloud Firestore Security Rules के लिए, कोई शुरुआती मोड चुनें:

    टेस्ट मोड

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

    वेब, Apple प्लैटफ़ॉर्म या Android SDK टूल का इस्तेमाल शुरू करने के लिए, टेस्ट मोड चुनें.

    प्रोडक्शन मोड

    यह मोड, मोबाइल और वेब क्लाइंट से डेटा पढ़ने और लिखने की सभी कार्रवाइयों को रोकता है. हालांकि, पुष्टि किए गए ऐप्लिकेशन सर्वर (Node.js, Python, Java) अब भी आपके डेटाबेस को ऐक्सेस कर सकते हैं.

    Cloud Firestore Security Rules का शुरुआती सेट, आपके डिफ़ॉल्ट Cloud Firestore डेटाबेस पर लागू होगा. अगर अपने प्रोजेक्ट के लिए एक से ज़्यादा डेटाबेस बनाते हैं, तो हर डेटाबेस के लिए Cloud Firestore Security Rules लागू किए जा सकते हैं.

  8. बनाएं पर क्लिक करें.

Cloud Firestore को चालू करने पर, Cloud API Manager में एपीआई भी चालू हो जाता है.

अपना डेवलपमेंट एनवायरमेंट सेट अप करना

अपने ऐप्लिकेशन में ज़रूरी डिपेंडेंसी और क्लाइंट लाइब्रेरी जोड़ें.

Node.js
  1. अपने ऐप्लिकेशन में Firebase Admin SDK टूल जोड़ें:
    npm install firebase-admin --save
  2. अपने एनवायरमेंट में सही क्रेडेंशियल के साथ Cloud Firestore को शुरू करने के लिए, नीचे दिए गए निर्देशों का पालन करें.
Python
  1. अपने Python ऐप्लिकेशन में Firebase Admin SDK टूल जोड़ें:
    pip install --upgrade firebase-admin
  2. अपने एनवायरमेंट में सही क्रेडेंशियल के साथ Cloud Firestore को शुरू करने के लिए, नीचे दिए गए निर्देशों का पालन करें.
Java
  1. अपने ऐप्लिकेशन में Firebase Admin SDK टूल जोड़ें:
    • Gradle का इस्तेमाल करके:
      implementation 'com.google.firebase:firebase-admin:9.9.0'
    • Maven का इस्तेमाल करके:
      <dependency>
        <groupId>com.google.firebase</groupId>
        <artifactId>firebase-admin</artifactId>
        <version>9.9.0</version>
      </dependency>
           
  2. अपने एनवायरमेंट में सही क्रेडेंशियल के साथ Cloud Firestore को शुरू करने के लिए, नीचे दिए गए निर्देशों का पालन करें.

शुरू करनाCloud Firestore

Cloud Firestore का कोई इंस्टेंस शुरू करें:

Node.js
Cloud Firestore SDK टूल को आपके एनवायरमेंट के हिसाब से अलग-अलग तरीकों से शुरू किया जाता है. यहां सबसे आम तरीके दिए गए हैं. पूरी जानकारी के लिए, देखें 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 console में, आईएएम और एडमिन > सेवा खाते पर जाएं. कोई नई निजी कुंजी जनरेट करें और 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();
    
Python
Cloud Firestore SDK टूल को आपके एनवायरमेंट के हिसाब से अलग-अलग तरीकों से शुरू किया जाता है. यहां सबसे आम तरीके दिए गए हैं. पूरी जानकारी के लिए, देखें 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()

    SDK टूल को शुरू करने के लिए, मौजूदा ऐप्लिकेशन डिफ़ॉल्ट क्रेडेंशियल का भी इस्तेमाल किया जा सकता है.

    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 console में, आईएएम और एडमिन > सेवा खाते पर जाएं. कोई नई निजी कुंजी जनरेट करें और 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()
  • Java
    Cloud Firestore SDK टूल को आपके एनवायरमेंट के हिसाब से अलग-अलग तरीकों से शुरू किया जाता है. यहां सबसे आम तरीके दिए गए हैं. पूरी जानकारी के लिए, देखें 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 console में, आईएएम और एडमिन > सेवा खाते पर जाएं. कोई नई निजी कुंजी जनरेट करें और 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 किसी दस्तावेज़ में पहली बार डेटा जोड़ने पर, कलेक्शन और दस्तावेज़ अपने-आप बना लेता है. आपको कलेक्शन या दस्तावेज़ साफ़ तौर पर बनाने की ज़रूरत नहीं होती.

    यहां दिए गए उदाहरण कोड का इस्तेमाल करके, नया कलेक्शन और दस्तावेज़ बनाएं.

    Node.js
    const docRef = db.collection('users').doc('alovelace');
    
    await docRef.set({
      first: 'Ada',
      last: 'Lovelace',
      born: 1815
    });
    Java
    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());
    Python
    doc_ref = db.collection("users").document("alovelace")
    doc_ref.set({"first": "Ada", "last": "Lovelace", "born": 1815})

    कोर ऑपरेशंस का इस्तेमाल करके डेटा पढ़ना

    Firebase कंसोल में मौजूद डेटा व्यूअर का इस्तेमाल करके, यह तुरंत पुष्टि करें कि आपने Cloud Firestore में डेटा जोड़ा है या नहीं.

    पूरी कलेक्शन को वापस पाने के लिए, "get" तरीके का भी इस्तेमाल किया जा सकता है.

    Node.js
    const snapshot = await db.collection('users').get();
    snapshot.forEach((doc) => {
      console.log(doc.id, '=>', doc.data());
    });
    Python
    users_ref = db.collection("users")
    docs = users_ref.stream()
    
    for doc in docs:
        print(f"{doc.id} => {doc.to_dict()}")
    Java
    // 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"));
    }

    पाइपलाइन ऑपरेशंस का इस्तेमाल करके डेटा पढ़ना

    अब पाइपलाइन क्वेरी के अनुभव की तुलना, कोर क्वेरी के अनुभव से की जा सकती है.

    Node.js
    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);
    }
    Python
    pipeline = client.pipeline().collection("users")
    for result in pipeline.execute():
        print(f"{result.id} => {result.data()}")
    Java
    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");
          }
        });

    अगले चरण

    इन विषयों की मदद से, कोर और पाइपलाइन ऑपरेशंस के बारे में ज़्यादा जानें: