Google is committed to advancing racial equity for Black communities. See how.
این صفحه به‌وسیله ‏Cloud Translation API‏ ترجمه شده است.
Switch to English

با Cloud Firestore شروع کنید

این شروع سریع به شما نشان می دهد که چگونه Cloud Firestore را تنظیم کنید ، داده اضافه کنید ، سپس داده هایی را که تازه در کنسول Firebase اضافه کرده اید مشاهده کنید.

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

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

  2. به قسمت Cloud Firestore کنسول Firebase بروید . از شما خواسته می شود یک پروژه Firebase موجود را انتخاب کنید. گردش کار ایجاد پایگاه داده را دنبال کنید.

  3. یک حالت شروع برای قوانین امنیتی Cloud Firestore خود انتخاب کنید:

    حالت آزمون

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

    برای شروع کار با وب ، iOS یا Android SDK ، حالت آزمون را انتخاب کنید.

    حالت قفل شده

    همه خواندن و نوشتن مشتری های وب و تلفن را رد می کند. سرورهای برنامه معتبر شما (C # ، Go ، Java ، Node.js ، PHP ، Python یا Ruby) هنوز هم می توانند به پایگاه داده شما دسترسی پیدا کنند.

    برای شروع با C # ، Go ، Java ، Node.js ، PHP ، Python یا کتابخانه سرویس دهنده سرور Ruby ، ​​حالت قفل شده را انتخاب کنید.

  4. مکانی را برای پایگاه داده خود انتخاب کنید.

    • این تنظیمات موقعیت مکانی پیش فرض Google Cloud Platform (GCP) پروژه شما است. توجه داشته باشید که این مکان برای خدمات GCP در پروژه شما که به تنظیم موقعیت مکانی نیاز دارند ، به طور خاص ، سطل ذخیره سازی Cloud Storage و برنامه App Engine (که در صورت استفاده از Cloud Scheduler لازم است) مورد استفاده قرار خواهد گرفت.

    • اگر نمی توانید مکانی را انتخاب کنید ، پروژه شما از قبل دارای یک منبع منبع پیش فرض GCP است. یا هنگام ایجاد پروژه یا هنگام راه اندازی سرویس دیگری که به تنظیم موقعیت مکانی نیاز دارد ، تنظیم شده است.

  5. روی انجام شد کلیک کنید.

هنگامی که Cloud Firestore را فعال می کنید ، API را در Cloud API Manager نیز فعال می کند .

محیط توسعه خود را تنظیم کنید

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

وب
  1. برای افزودن Firebase به برنامه وب خود ، دستورالعمل ها را دنبال کنید.
  2. کتابخانه های Firebase و Cloud Firestore را به برنامه خود اضافه کنید:
    <script src="https://www.gstatic.com/firebasejs/8.1.1/firebase-app.js"></script>
    <script src="https://www.gstatic.com/firebasejs/8.1.1/firebase-firestore.js"></script>
    Cloud Firestore SDK نیز به عنوان یک بسته npm در دسترس است.
    npm install firebase@8.1.1 --save
    
    شما به صورت دستی به Firebase و Cloud Firestore نیاز دارید.
    const firebase = require("firebase");
    // Required for side-effects
    require("firebase/firestore");
    
iOS
  1. برای افزودن Firebase به برنامه iOS خود ، دستورالعمل ها را دنبال کنید.
  2. غلاف Cloud Firestore را به Podfile خود Podfile کنید
  3. فایل را ذخیره کرده و pod install اجرا pod install .

جاوا

  1. برای افزودن Firebase به برنامه Android خود ، دستورالعمل ها را دنبال کنید.
  2. با استفاده از Firebase Android BoM ، وابستگی را برای کتابخانه Cloud Firestore Android در پرونده Gradle ماژول خود (در سطح برنامه) اعلام کنید (معمولاً app/build.gradle ).
    dependencies {
        // Import the BoM for the Firebase platform
        implementation platform('com.google.firebase:firebase-bom:26.1.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'
    }
    

    با استفاده از Firebase Android BoM ، برنامه شما همیشه از نسخه های سازگار کتابخانه های Firebase Android استفاده خواهد کرد.

    (جایگزین) بدون استفاده از BoM وابستگی به کتابخانه Firebase را اعلام کنید

    اگر تصمیم دارید از Firebase BoM استفاده نکنید ، باید هر نسخه از کتابخانه Firebase را در خط وابستگی خود مشخص کنید.

    توجه داشته باشید که اگر از چندین کتابخانه Firebase در برنامه خود استفاده می کنید ، ما به شدت توصیه می کنیم که از 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.0'
    }
    

کوتلین + KTX

  1. برای افزودن Firebase به برنامه Android خود ، دستورالعمل ها را دنبال کنید.
  2. با استفاده از Firebase Android BoM ، وابستگی را برای کتابخانه Cloud Firestore Android در پرونده Gradle ماژول خود (در سطح برنامه) اعلام کنید (معمولاً app/build.gradle ).
    dependencies {
        // Import the BoM for the Firebase platform
        implementation platform('com.google.firebase:firebase-bom:26.1.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'
    }
    

    با استفاده از Firebase Android BoM ، برنامه شما همیشه از نسخه های سازگار کتابخانه های Firebase Android استفاده خواهد کرد.

    (جایگزین) بدون استفاده از BoM وابستگی به کتابخانه Firebase را اعلام کنید

    اگر تصمیم دارید از Firebase BoM استفاده نکنید ، باید هر نسخه از کتابخانه Firebase را در خط وابستگی خود مشخص کنید.

    توجه داشته باشید که اگر از چندین کتابخانه Firebase در برنامه خود استفاده می کنید ، ما به شدت توصیه می کنیم که از 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.0'
    }
    
جاوا
  1. Firebase Admin SDK را به برنامه خود اضافه کنید:
    • استفاده از Gradle:
      compile 'com.google.firebase:firebase-admin:7.0.1'
      
    • استفاده از Maven:
      <dependency>
        <groupId>com.google.firebase</groupId>
        <artifactId>firebase-admin</artifactId>
        <version>7.0.1</version>
      </dependency>
           
  2. دستورالعمل های زیر را دنبال کنید تا Cloud Firestore را با اعتبار مناسب در محیط خود شروع کنید.
پایتون
  1. Firebase Admin SDK را به برنامه پایتون خود اضافه کنید:
    pip install --upgrade firebase-admin
  2. برای شروع اولیه Cloud Firestore با اعتبار مناسب در محیط خود ، دستورالعمل های زیر را دنبال کنید.
++ C
  1. برای افزودن Firebase به پروژه ++ C خود ، دستورالعمل ها را دنبال کنید.
  2. رابط C ++ برای Android.
    • وابستگی های گرید. موارد زیر را به پرونده Gradle ماژول خود اضافه کنید (سطح برنامه) (معمولاً 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 فایل:
              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}")
              
  3. برای تنظیم ادغام دسک تاپ ، به افزودن Firebase به پروژه C ++ خود مراجعه کنید .
وحدت
  1. برای افزودن Firebase به پروژه Unity خود ، دستورالعمل ها را دنبال کنید.
  2. رابط واحد برای آندروید.
  3. هنگام ساخت Android ، ProGuarding را فعال کنید تا از محدودیت Android DEX جلوگیری کنید. برای انجام این کار ، در ویرایشگر Unity:

    1. File> Build Settings را انتخاب کنید
    2. "Platform" را به "Android" تغییر دهید و روی "Switch Platform" کلیک کنید
    3. روی "تنظیمات پخش کننده" کلیک کنید
    4. در UI اصلی Unity ، در بخش «تنظیمات برای Android» ، «تنظیمات انتشار» را انتخاب کنید
    5. در بخش "کوچک کردن" ، تنظیمات Release و Debug را از "None" به "ProGuard" تغییر دهید
Node.js
  1. Firebase Admin SDK را به برنامه خود اضافه کنید:
    npm install firebase-admin --save
  2. دستورالعمل های زیر را دنبال کنید تا Cloud Firestore را با اعتبار مناسب در محیط خود شروع کنید.
برو
  1. Firebase Admin SDK را به برنامه Go خود اضافه کنید:
    go get firebase.google.com/go
    
  2. دستورالعمل های زیر را دنبال کنید تا Cloud Firestore را با اعتبار مناسب در محیط خود شروع کنید.
PHP
  1. کتابخانه های سرویس گیرنده سرور Cloud Firestore (جاوا ، Node.js ، Python ، Go ، PHP ، C # و Ruby) از اعتبارنامه پیش فرض Google Application برای احراز هویت استفاده می کنند.
    • برای احراز هویت از محیط توسعه خود ، متغیر محیط GOOGLE_APPLICATION_CREDENTIALS را تنظیم کنید تا به یک پرونده کلید حساب سرویس JSON اشاره کند. می توانید یک فایل کلیدی در صفحه اعتبارنامه های کنسول API ایجاد کنید.
      export GOOGLE_APPLICATION_CREDENTIALS="path/to/your/keyfile.json"
    • اگر در محیط تولید خود ، با استفاده از همان پروژه ای که برای Cloud Firestore استفاده می کنید ، لازم نیست احراز هویت کنید. در غیر این صورت ، یک حساب سرویس تنظیم کنید .
  2. پسوند gRPC را برای PHP نصب کنید و فعال کنید ، که برای استفاده از کتابخانه مشتری به آن نیاز خواهید داشت.
  3. کتابخانه Cloud Firestore PHP را به برنامه خود اضافه کنید:
    composer require google/cloud-firestore
C #
  1. کتابخانه های سرویس گیرنده سرور Cloud Firestore (جاوا ، Node.js ، Python ، Go ، PHP ، C # و Ruby) از اعتبارنامه پیش فرض Google Application برای احراز هویت استفاده می کنند.
    • برای احراز هویت از محیط توسعه خود ، متغیر محیط GOOGLE_APPLICATION_CREDENTIALS را تنظیم کنید تا به یک پرونده کلید حساب سرویس JSON اشاره کند. می توانید یک فایل کلیدی در صفحه اعتبارنامه های کنسول API ایجاد کنید.
      export GOOGLE_APPLICATION_CREDENTIALS="path/to/your/keyfile.json"
    • اگر در محیط تولید خود ، با استفاده از همان پروژه ای که برای Cloud Firestore استفاده می کنید ، لازم نیست احراز هویت کنید. در غیر این صورت ، یک حساب سرویس تنظیم کنید .
  2. اضافه کردن کتابخانه ابر Firestore C # به برنامه خود را در خود .csproj فایل:
    <ItemGroup>
      <PackageReference Include="Google.Cloud.Firestore" Version="1.1.0-beta01" />
    </ItemGroup>
  3. موارد زیر را به پرونده Program.cs خود اضافه کنید:
    using Google.Cloud.Firestore;
یاقوت
  1. کتابخانه های سرویس گیرنده سرور Cloud Firestore (جاوا ، Node.js ، Python ، Go ، PHP ، C # و Ruby) از اعتبارنامه پیش فرض Google Application برای احراز هویت استفاده می کنند.
    • برای احراز هویت از محیط توسعه خود ، متغیر محیط GOOGLE_APPLICATION_CREDENTIALS را تنظیم کنید تا به یک پرونده کلید حساب سرویس JSON اشاره کند. می توانید یک فایل کلیدی در صفحه اعتبارنامه های کنسول API ایجاد کنید.
      export GOOGLE_APPLICATION_CREDENTIALS="path/to/your/keyfile.json"
    • اگر در محیط تولید خود ، با استفاده از همان پروژه ای که برای Cloud Firestore استفاده می کنید ، لازم نیست احراز هویت کنید. در غیر این صورت ، یک حساب سرویس تنظیم کنید .
  2. کتابخانه Cloud Firestore Ruby را به برنامه خود در Gemfile کنید:
    gem "google-cloud-firestore"
  3. با استفاده از:
    bundle install
    وابستگی ها را از Gemfile خود نصب کنید

Cloud Firestore را ابتدا راه اندازی کنید

نمونه ای از Cloud Firestore را شروع کنید:

وب
// Initialize Cloud Firestore through Firebase
firebase.initializeApp({
  apiKey: '### FIREBASE API KEY ###',
  authDomain: '### FIREBASE AUTH DOMAIN ###',
  projectId: '### CLOUD FIRESTORE PROJECT ID ###'
});

var db = firebase.firestore();
مقادیر "initializeApp" را می توان در "firebaseConfig" برنامه وب خود یافت. برای ادامه داده در هنگام قطع اتصال دستگاه ، به Enable Offline Documentation مراجعه کنید.
سریع
import Firebase

FirebaseApp.configure()

let db = Firestore.firestore()
هدف-C
@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();

کوتلین + KTX

// Access a Cloud Firestore instance from your Activity
val db = Firebase.firestore
جاوا
Cloud Firestore SDK بسته به محیط شما به روش های مختلف مقداردهی اولیه می شود. در زیر متداول ترین روش ها آورده شده است. برای مراجعه کامل ، به مقدماتی کردن Admin SDK مراجعه کنید .
  • در Google Cloud Platform
    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 & مدیر> حسابهای سرویس در Cloud Platform 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 SDK بسته به محیط شما به روش های مختلف مقداردهی اولیه می شود. در زیر متداول ترین روش ها آورده شده است. برای مراجعه کامل ، به مقدماتی کردن Admin SDK مراجعه کنید .
  • در Google Cloud Platform
    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()
    
    مقداردهی اولیه را انجام دهید
  • در سرور خود شروع کنید

    برای استفاده از Firebase Admin SDK در سرور خود ، از یک حساب سرویس استفاده کنید .

    به IAM & مدیر> حسابهای سرویس در Cloud Platform 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')
    firebase_admin.initialize_app(cred)
    
    db = firestore.client()
    
  • ++ C
    // Make sure the call to `Create()` happens some time before you call Firestore::GetInstance().
    App::Create();
    Firestore* db = Firestore::GetInstance();
    
    Node.js
    Cloud Firestore SDK بسته به محیط شما به روش های مختلف مقداردهی اولیه می شود. در زیر متداول ترین روش ها آورده شده است. برای مراجعه کامل ، به مقدماتی کردن Admin SDK مراجعه کنید .
    • در عملکردهای ابر
      const admin = require('firebase-admin');
      admin.initializeApp();
      
      const db = admin.firestore();
      
      
      مقداردهی اولیه را انجام دهید
    • در Google Cloud Platform
      const admin = require('firebase-admin');
      
      admin.initializeApp({
        credential: admin.credential.applicationDefault()
      });
      
      const db = admin.firestore();
      
      مقداردهی اولیه را انجام دهید
    • در سرور خود شروع کنید

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

      const admin = require('firebase-admin');
      
      const serviceAccount = require('./path/to/serviceAccountKey.json');
      
      admin.initializeApp({
        credential: admin.credential.cert(serviceAccount)
      });
      
      const db = admin.firestore();
      
      
    برو
    Cloud Firestore SDK بسته به محیط شما به روش های مختلف مقداردهی اولیه می شود. در زیر متداول ترین روش ها آورده شده است. برای مراجعه کامل ، به مقدماتی کردن Admin SDK مراجعه کنید .
  • در Google Cloud Platform
    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()
    
    مقداردهی اولیه را انجام دهید
  • در سرور خود شروع کنید

    برای استفاده از Firebase Admin SDK در سرور خود ، از یک حساب سرویس استفاده کنید .

    به IAM & مدیر> حسابهای سرویس در Cloud Platform Console بروید. یک کلید خصوصی جدید ایجاد کنید و پرونده JSON را ذخیره کنید. سپس از فایل برای شروع SDK استفاده کنید:

    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()
    
  • PHP
    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;
    
    C #
    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."
    

    داده اضافه کنید

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

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

    وب
    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)")
        }
    }
    
    هدف-C
    // 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);
                }
            });
    

    کوتلین + KTX

    // 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
    })
      
    ++ C
    // 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';
      }
    });
      
    Node.js
    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)
    }
      
    PHP
    $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.");
    });
      
    C #
    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)")
        }
    }
    
    هدف-C
    // 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);
                }
            });
    

    کوتلین + KTX

    // 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
    })
      
    ++ C
    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';
          }
        });
      
    Node.js
    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)
    }
      
    PHP
    $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.");
    });
      
    C #
    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."
      

    داده ها را بخوانید

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

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

    وب
    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())")
            }
        }
    }
    
    هدف-C
    [[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());
                    }
                }
            });
    

    کوتلین + KTX

    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()}')
      
    ++ C
    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';
      }
    });
      
    Node.js
    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())
    }
      
    PHP
    $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.");
    });
      
    C #
    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
      

    اطلاعات خود را ایمن کنید

    اگر از وب ، Android یا iOS SDK استفاده می کنید ، از قوانین تأیید اعتبار Firebase و Cloud Firestore برای امنیت داده های خود در Cloud Firestore استفاده کنید.

    در اینجا چند مجموعه قانون اساسی وجود دارد که می توانید برای شروع استفاده کنید. می توانید قوانین امنیتی خود را در تب Rules کنسول تغییر دهید.

    احراز هویت

    // 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;
        }
      }
    }
    

    اگر از یکی از SDK های سرور استفاده می کنید ، برای ایمن سازی اطلاعات خود در Cloud Firestore از Identity and Access Management (IAM) استفاده کنید.

    آموزش تصویری را مشاهده کنید

    برای راهنمایی دقیق در مورد شروع کار با Cloud Firestore کتابخانه تلفن همراه و سرویس گیرنده وب ، یکی از آموزشهای ویدیویی زیر را تماشا کنید:

    وب
    iOS
    اندروید

    می توانید فیلم های بیشتری را در کانال YouTube Firebase پیدا کنید .

    مراحل بعدی

    با موضوعات زیر دانش خود را عمیق کنید:

    • Codelabs - با دنبال کردن کد کد برای Android ، iOS یا وب ، استفاده از Cloud Firestore را در یک برنامه واقعی بیاموزید.
    • مدل داده - درباره چگونگی ساختار داده ها در Cloud Firestore ، از جمله داده های سلسله مراتبی و جمع آوری های فرعی ، بیشتر بیاموزید.
    • افزودن داده - درباره ایجاد و به روزرسانی داده ها در Cloud Firestore بیشتر بدانید.
    • دریافت داده - درباره نحوه بازیابی اطلاعات بیشتر بیاموزید.
    • س quالات ساده و مرکب را انجام دهید - با نحوه اجرای س howالات ساده و مرکب آشنا شوید.
    • س Orderالات مربوط به سفارش و محدود کردن نحوه تنظیم و محدود کردن داده های برگشتی توسط سeriesالات خود را بیاموزید.