شروع به کار با نسخه Firestore Enterprise بااستفاده از کتابخانه‌های کارخواه سرور

این شروع سریع به شما نشان می‌دهد که چگونه Cloud Firestore را راه‌اندازی کنید، داده اضافه کنید، سپس از عملیات Core یا عملیات Pipeline برای پُرسمان کردن داده‌هایی که به‌تازگی در کنسول Firebase بااستفاده از کتابخانه‌های کارخواه سرور برای Java،‏ Node.js، و Python اضافه کرده‌اید استفاده کنید.

از این کتابخانه‌های کارخواه برای راه‌اندازی محیط‌های سرور ممتاز با دسترسی کامل به پایگاه داده‌تان استفاده کنید.

ایجاد پایگاه داده Cloud Firestore

  1. اگر قبلاً این کار را نکرده‌اید، پروژه Firebase ایجاد کنید: در کنسول Firebase، روی افزودن پروژه کلیک کنید، سپس دستورالعمل‌های روی صفحه را دنبال کنید تا پروژه Firebase ایجاد کنید یا سرویس‌های Firebase را به پروژه Google Cloud موجود اضافه کنید.

  2. در پانل سمت راست، به پایگاه‌های داده و فضای ذخیره‌سازی > Firestore بروید.

  3. روی ایجاد پایگاه داده کلیک کنید.

  4. Enterprise را برای حالت پایگاه داده انتخاب کنید.

  5. Firestore در حالت بومی را برای حالت عملیات انتخاب کنید که از عملیات‌های Core و Pipeline پشتیبانی می‌کند.

  6. مکانی برای پایگاه داده‌تان انتخاب کنید.

  7. حالت شروع را برای Cloud Firestore Security Rules انتخاب کنید:

    حالت آزمایشی

    برای شروع کار با کتابخانه‌های کارخواه وب و تلفن همراه مناسب است، اما به همه اجازه می‌دهد داده‌هایتان را بخوانند و بازنویسی کنند. پس‌از آزمایش، حتماً بخش ایمن‌سازی داده‌ها را مرور کنید.

    برای شروع به کار با وب، پلاتفرم‌های Apple، یا کیت توسعه نرم‌افزار Android، حالت آزمایش را انتخاب کنید.

    حالت تولید

    همه خواندن‌ها و نوشتن‌ها را از کلاینت‌های وب و تلفن همراه رد می‌کند. سرورهای برنامه اصالت‌سنجی‌شده شما (Node.js،‏ Python،‏ Java) همچنان می‌توانند به پایگاه داده‌تان دسترسی داشته باشند.

    مجموعه اولیه Cloud Firestore Security Rules برای پایگاه داده پیش‌فرض Cloud Firestore شما اعمال خواهد شد. اگر چندین پایگاه داده برای پروژه‌تان ایجاد کنید، می‌توانید برای هر پایگاه داده Cloud Firestore Security Rules مستقر کنید.

  8. روی ایجاد کردن کلیک کنید.

وقتی Cloud Firestore را فعال می‌کنید، میانای برنامه‌سازی کاربردی نیز در مدیر میانای برنامه‌سازی کاربردی Cloud فعال می‌شود.

راه‌اندازی محیط توسعه نرم‌افزار

وابستگی‌های لازم و کتابخانه‌های مشتری را به برنامه‌تان اضافه کنید.

Node.js
  1. Firebase Admin SDK را به برنامه‌تان اضافه کنید:
    npm install firebase-admin --save
  2. دستورالعمل‌های زیر را برای مقداردهی اولیه Cloud Firestore با اعتبارنامه‌های مناسب در محیط خود دنبال کنید.
پایتون
  1. افزودن Firebase Admin SDK به برنامه Python:
    pip install --upgrade firebase-admin
  2. دستورالعمل‌های زیر را برای مقداردهی اولیه Cloud Firestore با اعتبارنامه‌های مناسب در محیط خود دنبال کنید.
جاوا
  1. افزودن Firebase Admin SDK به برنامه:
    • بااستفاده از Gradle:
      implementation 'com.google.firebase:firebase-admin:9.11.0'
    • استفاده از Maven:
      <dependency>
        <groupId>com.google.firebase</groupId>
        <artifactId>firebase-admin</artifactId>
        <version>9.11.0</version>
      </dependency>
           
  2. دستورالعمل‌های زیر را برای مقداردهی اولیه Cloud Firestore با اعتبارنامه‌های مناسب در محیط خود دنبال کنید.

مقداردهی اولیه Cloud Firestore

نمونه‌ای از Cloud Firestore را مقداردهی اولیه کنید:

Node.js
کیت توسعه نرم‌افزار Cloud Firestore بسته به محیط شما به روش‌های مختلفی مقداردهی اولیه می‌شود. رایج‌ترین روش‌ها در زیر آمده است. برای مرجع کامل، مقداردهی اولیه کیت توسعه نرم‌افزار سرپرست را ببینید.
  • مقداردهی اولیه در 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();
  • مقداردهی اولیه در سرور خودتان

    برای استفاده از Firebase Admin SDK در سرور خودتان (یا هر محیط Node.js دیگر)، از حساب سرویس استفاده کنید. در کنسول Google Cloud، به IAM و سرپرست > حساب‌های سرویس بروید. کلید خصوصی جدیدی ایجاد کنید و فایل JSON را ذخیره کنید. سپس از این فایل برای مقداردهی اولیه کیت توسعه نرم‌افزار استفاده کنید:

    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 بسته به محیط شما به روش‌های مختلفی مقداردهی اولیه می‌شود. رایج‌ترین روش‌ها در زیر آمده است. برای مرجع کامل، مقداردهی اولیه کیت توسعه نرم‌افزار سرپرست را ببینید.
  • مقداردهی اولیه در 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 در سرور خودتان، از حساب سرویس استفاده کنید.

    به IAM & admin (مدیریت هویت و دسترسی و سرپرست) > Service accounts (حساب‌های سرویس) در کنسول Google Cloud بروید. کلید خصوصی جدیدی ایجاد کنید و فایل 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')
    
    app = firebase_admin.initialize_app(cred)
    
    db = firestore.client()
  • جاوا
    کیت توسعه نرم‌افزار Cloud Firestore بسته به محیط شما به روش‌های مختلفی مقداردهی اولیه می‌شود. رایج‌ترین روش‌ها در زیر آمده است. برای مرجع کامل، مقداردهی اولیه کیت توسعه نرم‌افزار سرپرست را ببینید.
  • مقداردهی اولیه در 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 در سرور خودتان، از حساب سرویس استفاده کنید.

    به IAM & admin (مدیریت هویت و دسترسی و سرپرست) > Service accounts (حساب‌های سرویس) در کنسول Google Cloud بروید. کلید خصوصی جدیدی ایجاد کنید و فایل 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();
  • افزودن داده بااستفاده از عملیات‌های Core

    برای کاوش عملیات Core و عملیات Pipeline برای پُرسمان داده‌ها، بااستفاده از عملیات Core، داده‌ها را به پایگاه داده‌تان اضافه کنید.

    Cloud Firestore داده‌ها را در «اسناد» ذخیره می‌کند که در «مجموعه‌ها» ذخیره می‌شوند. Cloud Firestore مجموعه‌ها و اسناد را به‌طور ضمنی در اولین باری که داده‌ها را به سند اضافه می‌کنید ایجاد می‌کند. نیازی نیست به‌طور صریح مجموعه یا سند ایجاد کنید.

    بااستفاده از کد نمونه زیر، مجموعه و سند جدیدی ایجاد کنید.

    Node.js
    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})

    خواندن داده‌ها بااستفاده از عملیات‌های Core

    از نمایشگر داده در کنسول Firebase استفاده کنید تا به‌سرعت تأیید کنید که داده‌ها را به Cloud Firestore اضافه کرده‌اید.

    همچنین می‌توانید از روش «get» برای بازیابی کل مجموعه استفاده کنید.

    Node.js
    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"));
    }

    خواندن داده‌ها بااستفاده از عملیات Pipeline

    اکنون می‌توانید تجربه پُرسمان Pipeline را با تجربه پُرسمان Core مقایسه کنید.

    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);
    }
    پایتون
    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");
          }
        });

    مراحل بعدی

    با موضوعات زیر، دانش خود را درباره عملیات Core و Pipeline عمیق‌تر کنید: