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

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

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

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

  2. پروژه خود را در کنسول Firebase باز کنید. در پانل سمت چپ، Build را گسترش دهید و سپس Firestore database را انتخاب کنید.

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

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

    اگر نمی‌توانید مکانی را انتخاب کنید، «مکان منابع پیش‌فرض Google Cloud » پروژه شما قبلاً تنظیم شده است. برخی از منابع پروژه شما (مانند نمونه پیش‌فرض Cloud Firestore ) یک وابستگی به مکان مشترک دارند و موقعیت مکانی آنها می‌تواند در حین ایجاد پروژه یا هنگام راه‌اندازی سرویس دیگری که این وابستگی مکان را به اشتراک بگذارد تنظیم شود.

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

    حالت تست

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

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

    حالت قفل شده

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

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

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

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

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

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

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

Web

  1. دستورالعمل ها را برای افزودن Firebase به برنامه وب خود دنبال کنید.
  2. کتابخانه های Firebase و Cloud Firestore را به برنامه خود اضافه کنید:
    <script src="https://www.gstatic.com/firebasejs/11.0.2/firebase-app-compat.js"></script>
    <script src="https://www.gstatic.com/firebasejs/11.0.2/firebase-firestore-compat.js"></script>
    Cloud Firestore SDK نیز به صورت بسته npm در دسترس است.
    npm install firebase@11.0.2 --save
    باید به صورت دستی به Firebase و Cloud Firestore نیاز داشته باشید.
    import firebase from "firebase/compat/app";
    // Required for side-effects
    import "firebase/firestore";

Web

  1. دستورالعمل ها را برای افزودن Firebase به برنامه وب خود دنبال کنید.
  2. Cloud Firestore SDK به صورت بسته npm در دسترس است.
    npm install firebase@11.0.2 --save
    باید هم Firebase و هم Cloud Firestore وارد کنید.
    import { initializeApp } from "firebase/app";
    import { getFirestore } from "firebase/firestore";
iOS+

دستورالعمل ها را برای افزودن Firebase به برنامه Apple خود دنبال کنید.

برای نصب و مدیریت وابستگی های Firebase از Swift Package Manager استفاده کنید.

  1. در Xcode، با باز بودن پروژه برنامه، به File > Swift Packages > Add Package Dependency بروید.
  2. هنگامی که از شما خواسته شد، مخزن SDK پلتفرم های Apple Firebase را اضافه کنید:
  3.   https://github.com/firebase/firebase-ios-sdk
      
  4. کتابخانه Firestore را انتخاب کنید.
  5. پس از اتمام، Xcode به طور خودکار شروع به حل و دانلود وابستگی های شما در پس زمینه می کند.
اندروید
  1. دستورالعمل ها را برای افزودن Firebase به برنامه Android خود دنبال کنید.
  2. با استفاده از Firebase Android BoM ، وابستگی کتابخانه Cloud Firestore برای Android را در فایل Gradle ماژول (سطح برنامه) خود (معمولا app/build.gradle.kts یا app/build.gradle ) اعلام کنید.
    dependencies {
        // Import the BoM for the Firebase platform
        implementation(platform("com.google.firebase:firebase-bom:33.7.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 استفاده می‌کند.

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

    اگر تصمیم گرفتید از 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:25.1.1")
    }

    به دنبال یک ماژول کتابخانه خاص کاتلین هستید؟ با شروع انتشار اکتبر 2023 ، توسعه دهندگان Kotlin و Java می توانند به ماژول کتابخانه اصلی وابسته باشند (برای جزئیات، به سؤالات متداول در مورد این ابتکار مراجعه کنید).

Dart

  1. اگر قبلاً این کار را نکرده‌اید، Firebase را در برنامه Flutter خود پیکربندی و مقداردهی اولیه کنید .
  2. از ریشه پروژه Flutter خود، دستور زیر را برای نصب افزونه اجرا کنید:
    flutter pub add cloud_firestore
  3. پس از تکمیل، برنامه Flutter خود را بازسازی کنید:
    flutter run
  4. اختیاری: با اضافه کردن چارچوب از پیش کامپایل شده، زمان ساخت iOS و macOS را بهبود بخشید.

    در حال حاضر، Firestore SDK برای iOS به کدهایی بستگی دارد که ساخت آن در Xcode ممکن است بیش از 5 دقیقه طول بکشد. برای کاهش قابل توجه زمان ساخت، می‌توانید با افزودن این خط به بلوک target 'Runner' do در پادفایل خود از یک نسخه از پیش کامپایل شده استفاده کنید:

    target 'Runner' do
      use_frameworks!
      use_modular_headers!
    
      pod 'FirebaseFirestore',
        :git => 'https://github.com/invertase/firestore-ios-sdk-frameworks.git',
        :tag => 'IOS_SDK_VERSION'
    
      flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__))
      target 'RunnerTests' do
        inherit! :search_paths
      end
    end

    IOS_SDK_VERSION با نسخه Firebase iOS SDK مشخص شده در فایل firebase_sdk_version.rb در firebase_core جایگزین کنید. اگر از آخرین نسخه firebase_core استفاده نمی‌کنید، این فایل را در حافظه پنهان بسته Pub محلی خود (معمولاً ~/.pub-cache ) جستجو کنید.

    علاوه بر این، مطمئن شوید که CocoaPods را به 1.9.1 یا بالاتر ارتقا داده اید:

    gem install cocoapods

    برای اطلاعات بیشتر به مشکل در GitHub مراجعه کنید.

جاوا
  1. Firebase Admin SDK را به برنامه خود اضافه کنید:
    • استفاده از Gradle:
      compile 'com.google.firebase:firebase-admin:1.32.0'
    • استفاده از Maven:
      <dependency>
        <groupId>com.google.firebase</groupId>
        <artifactId>firebase-admin</artifactId>
        <version>1.32.0</version>
      </dependency>
           
  2. دستورالعمل های زیر را دنبال کنید تا Cloud Firestore با اعتبار مناسب در محیط خود راه اندازی کنید.
پایتون
  1. Firebase Admin SDK را به برنامه پایتون خود اضافه کنید:
    pip install --upgrade firebase-admin
  2. دستورالعمل های زیر را دنبال کنید تا Cloud Firestore با اعتبار مناسب در محیط خود راه اندازی کنید.
C++
  1. دستورالعمل ها را برای افزودن Firebase به پروژه C++ خود دنبال کنید.
  2. رابط C++ برای اندروید.
    • وابستگی های Gradle موارد زیر را به فایل 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. از رابط Unity برای پیکربندی پروژه خود برای کوچک کردن بیلدهای اندروید استفاده کنید.
  3. شما باید ساخت را کوچک کنید تا Error while merging dex archives جلوگیری کنید.

    • این گزینه را می توان در تنظیمات پخش کننده > Android > تنظیمات انتشار > Minify پیدا کرد.
    • ممکن است گزینه‌ها در نسخه‌های مختلف Unity متفاوت باشند، بنابراین به مستندات رسمی Unity و راهنمای اشکال‌زدایی ساخت Firebase Unity مراجعه کنید.
    • اگر پس از فعال کردن کوچک‌سازی، تعداد روش‌های ارجاع‌شده همچنان از حد مجاز فراتر رفت، گزینه دیگری فعال کردن multidex در موارد زیر است:
      • mainTemplate.gradle اگر قالب سفارشی Gradle در تنظیمات پخش کننده فعال باشد
      • یا فایل build.gradle در سطح ماژول، اگر از Android Studio برای ساخت پروژه صادر شده استفاده می کنید.
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"
    • در محیط تولید خود، اگر برنامه خود را روی App Engine یا Compute Engine اجرا می کنید، با استفاده از همان پروژه ای که برای Cloud Firestore استفاده می کنید، نیازی به احراز هویت ندارید. در غیر این صورت، یک حساب سرویس راه اندازی کنید .
  2. پسوند gRPC را برای PHP نصب و فعال کنید، که برای استفاده از کتابخانه مشتری نیاز دارید.
  3. کتابخانه PHP Cloud Firestore را به برنامه خود اضافه کنید:
    composer require 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"
    • در محیط تولید خود، اگر برنامه خود را روی App Engine یا Compute Engine اجرا می کنید، با استفاده از همان پروژه ای که برای Cloud Firestore استفاده می کنید، نیازی به احراز هویت ندارید. در غیر این صورت، یک حساب سرویس راه اندازی کنید .
  2. کتابخانه Cloud 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"
    • در محیط تولید خود، اگر برنامه خود را روی App Engine یا Compute Engine اجرا می کنید، با استفاده از همان پروژه ای که برای Cloud Firestore استفاده می کنید، نیازی به احراز هویت ندارید. در غیر این صورت، یک حساب سرویس راه اندازی کنید .
  2. کتابخانه Cloud Firestore Ruby را به برنامه خود در Gemfile خود اضافه کنید:
    gem "google-cloud-firestore"
  3. وابستگی ها را از Gemfile خود با استفاده از:
    bundle install

(اختیاری) نمونه اولیه و آزمایش با Firebase Local Emulator Suite

برای توسعه دهندگان تلفن همراه، قبل از صحبت در مورد نحوه نوشتن و خواندن برنامه شما در Cloud Firestore ، اجازه دهید مجموعه ای از ابزارهایی را که می توانید برای نمونه سازی و آزمایش عملکرد Cloud Firestore استفاده کنید معرفی کنیم: Firebase Local Emulator Suite . اگر در حال آزمایش مدل های مختلف داده، بهینه سازی قوانین امنیتی خود هستید یا برای یافتن مقرون به صرفه ترین راه برای تعامل با back-end تلاش می کنید، اینکه بتوانید به صورت محلی بدون استقرار سرویس های زنده کار کنید می تواند ایده خوبی باشد.

شبیه ساز Cloud Firestore بخشی از Local Emulator Suite است که به برنامه شما امکان می دهد با محتوای پایگاه داده شبیه سازی شده و پیکربندی شما و همچنین به صورت اختیاری منابع پروژه شبیه سازی شده شما (توابع، سایر پایگاه های داده و قوانین امنیتی) تعامل داشته باشد.

استفاده از شبیه ساز Cloud Firestore فقط شامل چند مرحله است:

  1. افزودن یک خط کد به پیکربندی آزمایشی برنامه برای اتصال به شبیه ساز.
  2. از ریشه دایرکتوری پروژه محلی خود، firebase emulators:start اجرا کنید.
  3. برقراری تماس از کد نمونه اولیه برنامه با استفاده از SDK پلتفرم Cloud Firestore طبق معمول.

یک بررسی دقیق شامل Cloud Firestore و Cloud Functions در دسترس است. همچنین باید نگاهی به معرفی Local Emulator Suite داشته باشید.

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

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

Web

import { initializeApp } from "firebase/app";
import { getFirestore } from "firebase/firestore";

// TODO: Replace the following with your app's Firebase project configuration
// See: https://support.google.com/firebase/answer/7015592
const firebaseConfig = {
    FIREBASE_CONFIGURATION
};

// Initialize Firebase
const app = initializeApp(firebaseConfig);


// Initialize Cloud Firestore and get a reference to the service
const db = getFirestore(app);

firebaseConfig برنامه وب خود را جایگزین FIREBASE_CONFIGURATION کنید.

برای تداوم داده‌ها وقتی دستگاه اتصال خود را قطع می‌کند، به مستندات Enable Data Offline مراجعه کنید.

Web

import firebase from "firebase/app";
import "firebase/firestore";

// TODO: Replace the following with your app's Firebase project configuration
// See: https://support.google.com/firebase/answer/7015592
const firebaseConfig = {
    FIREBASE_CONFIGURATION
};

// Initialize Firebase
firebase.initializeApp(firebaseConfig);


// Initialize Cloud Firestore and get a reference to the service
const db = firebase.firestore();

firebaseConfig برنامه وب خود را جایگزین FIREBASE_CONFIGURATION کنید.

برای تداوم داده‌ها وقتی دستگاه اتصال خود را قطع می‌کند، به مستندات Enable Data Offline مراجعه کنید.

سویفت
توجه: این محصول در اهداف watchOS و App Clip موجود نیست.
import FirebaseCore
import FirebaseFirestore
FirebaseApp.configure()

let db = Firestore.firestore()
هدف-C
توجه: این محصول در اهداف watchOS و App Clip موجود نیست.
@import FirebaseCore;
@import FirebaseFirestore;

// Use Firebase library to configure APIs
[FIRApp configure];
  
FIRFirestore *defaultFirestore = [FIRFirestore firestore];

Kotlin

// Access a Cloud Firestore instance from your Activity
val db = Firebase.firestore

Java

// Access a Cloud Firestore instance from your Activity
FirebaseFirestore db = FirebaseFirestore.getInstance();

Dart

db = FirebaseFirestore.instance;
جاوا
بسته به محیط شما، Cloud Firestore SDK به روش های مختلفی مقداردهی اولیه می شود. در زیر رایج ترین روش ها آورده شده است. برای یک مرجع کامل، به 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 در سرور خود، از یک حساب سرویس استفاده کنید.

    به IAM & admin > حساب‌های سرویس در کنسول Google Cloud بروید. یک کلید خصوصی جدید ایجاد کنید و فایل 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 به روش های مختلفی مقداردهی اولیه می شود. در زیر رایج ترین روش ها آورده شده است. برای یک مرجع کامل، به 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()

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

    به IAM & admin > حساب‌های سرویس در کنسول Google Cloud بروید. یک کلید خصوصی جدید ایجاد کنید و فایل 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()
  • Python

    بسته به محیط شما، Cloud Firestore SDK به روش های مختلفی مقداردهی اولیه می شود. در زیر رایج ترین روش ها آورده شده است. برای یک مرجع کامل، به Initialize the Admin SDK مراجعه کنید.
  • در Google Cloud راه اندازی کنید
    import firebase_admin
    from firebase_admin import firestore_async
    
    # Application Default credentials are automatically created.
    app = firebase_admin.initialize_app()
    db = firestore_async.client()

    یک اعتبار پیش فرض برنامه موجود نیز می تواند برای مقداردهی اولیه SDK استفاده شود.

    import firebase_admin
    from firebase_admin import credentials
    from firebase_admin import firestore_async
    
    # Use the application default credentials.
    cred = credentials.ApplicationDefault()
    
    firebase_admin.initialize_app(cred)
    db = firestore_async.client()
  • بر روی سرور خود راه اندازی کنید

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

    به IAM & admin > حساب‌های سرویس در کنسول Google Cloud بروید. یک کلید خصوصی جدید ایجاد کنید و فایل JSON را ذخیره کنید. سپس از فایل برای مقداردهی اولیه SDK استفاده کنید:

    import firebase_admin
    from firebase_admin import credentials
    from firebase_admin import firestore_async
    
    # Use a service account.
    cred = credentials.Certificate('path/to/serviceAccount.json')
    
    app = firebase_admin.initialize_app(cred)
    
    db = firestore_async.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 به روش های مختلفی مقداردهی اولیه می شود. در زیر رایج ترین روش ها آورده شده است. برای یک مرجع کامل، به 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();
    • بر روی سرور خود راه اندازی کنید

      برای استفاده از Firebase Admin SDK در سرور خود (یا هر محیط دیگر Node.js)، از یک حساب سرویس استفاده کنید. به IAM & admin > حساب‌های سرویس در کنسول Google Cloud بروید. یک کلید خصوصی جدید ایجاد کنید و فایل 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 SDK به روش های مختلفی مقداردهی اولیه می شود. در زیر رایج ترین روش ها آورده شده است. برای یک مرجع کامل، به Initialize the Admin SDK مراجعه کنید.
  • در Google Cloud راه اندازی کنید
    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 & admin > حساب‌های سرویس در کنسول Google Cloud بروید. یک کلید خصوصی جدید ایجاد کنید و فایل 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

    PHP

    برای اطلاعات بیشتر در مورد نصب و ایجاد کلاینت Cloud Firestore ، به کتابخانه های سرویس گیرنده Cloud Firestore مراجعه کنید.

    use Google\Cloud\Firestore\FirestoreClient;
    
    /**
     * Initialize Cloud Firestore with default project ID.
     */
    function setup_client_create(string $projectId = null)
    {
        // Create the Cloud Firestore client
        if (empty($projectId)) {
            // The `projectId` parameter is optional and represents which project the
            // client will act on behalf of. If not supplied, the client falls back to
            // the default project inferred from the environment.
            $db = new FirestoreClient();
            printf('Created Cloud Firestore client with default project ID.' . PHP_EOL);
        } else {
            $db = new FirestoreClient([
                'projectId' => $projectId,
            ]);
            printf('Created Cloud Firestore client with project ID: %s' . PHP_EOL, $projectId);
        }
    }
    وحدت
    using Firebase.Firestore;
    using Firebase.Extensions;
    FirebaseFirestore db = FirebaseFirestore.DefaultInstance;
    سی شارپ

    سی شارپ

    برای اطلاعات بیشتر در مورد نصب و ایجاد کلاینت Cloud Firestore ، به کتابخانه های سرویس گیرنده Cloud Firestore مراجعه کنید.

    FirestoreDb db = FirestoreDb.Create(project);
    Console.WriteLine("Created Cloud Firestore client with project ID: {0}", project);
    روبی
    require "google/cloud/firestore"
    
    # The `project_id` parameter is optional and represents which project the
    # client will act on behalf of. If not supplied, the client falls back to the
    # default project inferred from the environment.
    firestore = Google::Cloud::Firestore.new project_id: project_id
    
    puts "Created Cloud Firestore client with given project ID."

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

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

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

    Web

    import { collection, addDoc } from "firebase/firestore"; 
    
    try {
      const docRef = await addDoc(collection(db, "users"), {
        first: "Ada",
        last: "Lovelace",
        born: 1815
      });
      console.log("Document written with ID: ", docRef.id);
    } catch (e) {
      console.error("Error adding document: ", e);
    }

    Web

    db.collection("users").add({
        first: "Ada",
        last: "Lovelace",
        born: 1815
    })
    .then((docRef) => {
        console.log("Document written with ID: ", docRef.id);
    })
    .catch((error) => {
        console.error("Error adding document: ", error);
    });
    سویفت
    توجه: این محصول در اهداف watchOS و App Clip موجود نیست.
    // Add a new document with a generated ID
    do {
      let ref = try await db.collection("users").addDocument(data: [
        "first": "Ada",
        "last": "Lovelace",
        "born": 1815
      ])
      print("Document added with ID: \(ref.documentID)")
    } catch {
      print("Error adding document: \(error)")
    }
    هدف-C
    توجه: این محصول در اهداف watchOS و App Clip موجود نیست.
    // 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);
          }
        }];

    Kotlin

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

    Java

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

    Dart

    // Create a new user with a first and last name
    final user = <String, dynamic>{
      "first": "Ada",
      "last": "Lovelace",
      "born": 1815
    };
    
    // Add a new document with a generated ID
    db.collection("users").add(user).then((DocumentReference doc) =>
        print('DocumentSnapshot added with ID: ${doc.id}'));
    جاوا
    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})

    Python

    doc_ref = db.collection("users").document("alovelace")
    await doc_ref.set({"first": "Ada", "last": "Lovelace", "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()
                  << std::endl;
      } else {
        std::cout << "Error adding document: " << future.error_message() << std::endl;
      }
    });
    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

    PHP

    برای اطلاعات بیشتر در مورد نصب و ایجاد کلاینت Cloud Firestore ، به کتابخانه های سرویس گیرنده Cloud Firestore مراجعه کنید.

    $docRef = $db->collection('samples/php/users')->document('alovelace');
    $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 اضافه کنید. توجه داشته باشید که این سند شامل یک جفت کلید-مقدار (نام میانی) است که در سند اول ظاهر نمی شود. اسناد موجود در یک مجموعه می توانند مجموعه های مختلفی از اطلاعات را شامل شوند.

    Web

    // Add a second document with a generated ID.
    import { addDoc, collection } from "firebase/firestore"; 
    
    try {
      const docRef = await addDoc(collection(db, "users"), {
        first: "Alan",
        middle: "Mathison",
        last: "Turing",
        born: 1912
      });
    
      console.log("Document written with ID: ", docRef.id);
    } catch (e) {
      console.error("Error adding document: ", e);
    }

    Web

    // Add a second document with a generated ID.
    db.collection("users").add({
        first: "Alan",
        middle: "Mathison",
        last: "Turing",
        born: 1912
    })
    .then((docRef) => {
        console.log("Document written with ID: ", docRef.id);
    })
    .catch((error) => {
        console.error("Error adding document: ", error);
    });
    سویفت
    توجه: این محصول در اهداف watchOS و App Clip موجود نیست.
    // Add a second document with a generated ID.
    do {
      let ref = try await db.collection("users").addDocument(data: [
        "first": "Alan",
        "middle": "Mathison",
        "last": "Turing",
        "born": 1912
      ])
      print("Document added with ID: \(ref.documentID)")
    } catch {
      print("Error adding document: \(error)")
    }
    هدف-C
    توجه: این محصول در اهداف watchOS و App Clip موجود نیست.
    // 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);
          }
        }];

    Kotlin

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

    Java

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

    Dart

    // Create a new user with a first and last name
    final user = <String, dynamic>{
      "first": "Alan",
      "middle": "Mathison",
      "last": "Turing",
      "born": 1912
    };
    
    // Add a new document with a generated ID
    db.collection("users").add(user).then((DocumentReference doc) =>
        print('DocumentSnapshot added with ID: ${doc.id}'));
    جاوا
    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("users").document("aturing")
    doc_ref.set({"first": "Alan", "middle": "Mathison", "last": "Turing", "born": 1912})

    Python

    doc_ref = db.collection("users").document("aturing")
    await doc_ref.set(
        {"first": "Alan", "middle": "Mathison", "last": "Turing", "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() << std::endl;
          } else {
            std::cout << "Error adding document: " << future.error_message()
                      << std::endl;
          }
        });
    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

    PHP

    برای اطلاعات بیشتر در مورد نصب و ایجاد کلاینت Cloud Firestore ، به کتابخانه های سرویس گیرنده Cloud Firestore مراجعه کنید.

    $docRef = $db->collection('samples/php/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."

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

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

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

    Web

    import { collection, getDocs } from "firebase/firestore"; 
    
    const querySnapshot = await getDocs(collection(db, "users"));
    querySnapshot.forEach((doc) => {
      console.log(`${doc.id} => ${doc.data()}`);
    });

    Web

    db.collection("users").get().then((querySnapshot) => {
        querySnapshot.forEach((doc) => {
            console.log(`${doc.id} => ${doc.data()}`);
        });
    });
    سویفت
    توجه: این محصول در اهداف watchOS و App Clip موجود نیست.
    do {
      let snapshot = try await db.collection("users").getDocuments()
      for document in snapshot.documents {
        print("\(document.documentID) => \(document.data())")
      }
    } catch {
      print("Error getting documents: \(error)")
    }
    هدف-C
    توجه: این محصول در اهداف watchOS و App Clip موجود نیست.
    [[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);
            }
          }
        }];

    Kotlin

    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)
        }

    Java

    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());
                    }
                }
            });

    Dart

    await db.collection("users").get().then((event) {
      for (var doc in event.docs) {
        print("${doc.id} => ${doc.data()}");
      }
    });
    جاوا
    // 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("users")
    docs = users_ref.stream()
    
    for doc in docs:
        print(f"{doc.id} => {doc.to_dict()}")

    Python

    users_ref = db.collection("users")
    docs = users_ref.stream()
    
    async 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 << std::endl;
        }
      } else {
        std::cout << "Error getting documents: " << future.error_message()
                  << std::endl;
      }
    });
    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

    PHP

    برای اطلاعات بیشتر در مورد نصب و ایجاد کلاینت Cloud Firestore ، به کتابخانه های سرویس گیرنده Cloud Firestore مراجعه کنید.

    $usersRef = $db->collection('samples/php/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

    داده های خود را ایمن کنید

    اگر از SDK پلتفرم های وب، اندروید یا Apple استفاده می کنید، از احراز هویت Firebase و Cloud Firestore Security Rules برای ایمن سازی داده های خود در Cloud Firestore استفاده کنید.

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

    احراز هویت مورد نیاز است

    // Allow read/write access to a document keyed by the user's UID
    service cloud.firestore {
      match /databases/{database}/documents {
        match /users/{uid} {
          allow read, write: if request.auth != null && request.auth.uid == uid;
        }
      }
    }
    

    حالت قفل شده

    // Deny read/write access to all users under any conditions
    service cloud.firestore {
      match /databases/{database}/documents {
        match /{document=**} {
          allow read, write: if false;
        }
      }
    }
    

    قبل از اینکه برنامه وب، اندروید یا iOS خود را برای تولید اجرا کنید، همچنین اقداماتی را انجام دهید تا مطمئن شوید که فقط مشتریان برنامه شما می توانند به داده های Cloud Firestore شما دسترسی داشته باشند. مستندات App Check را ببینید.

    اگر از یکی از SDK های سرور استفاده می کنید، از مدیریت هویت و دسترسی (IAM) برای ایمن سازی داده های خود در Cloud Firestore استفاده کنید.

    یک فیلم آموزشی را تماشا کنید

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

    وب
    iOS+
    اندروید

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

    مراحل بعدی

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

    • Codelabs – استفاده از Cloud Firestore در یک برنامه واقعی را با دنبال کردن کد لبه برای اندروید ، iOS یا وب بیاموزید.
    • مدل داده - درباره نحوه ساختار داده‌ها در Cloud Firestore ، از جمله داده‌های سلسله مراتبی و مجموعه‌های فرعی بیشتر بدانید.
    • افزودن داده — درباره ایجاد و به روز رسانی داده ها در Cloud Firestore بیشتر بیاموزید.
    • دریافت داده — درباره نحوه بازیابی داده ها بیشتر بیاموزید.
    • انجام پرس و جوهای ساده و مرکب — نحوه اجرای پرس و جوهای ساده و مرکب را بیاموزید.
    • سفارش و محدود کردن درخواست‌ها یاد بگیرید که چگونه داده‌های بازگردانده شده توسط درخواست‌های خود را سفارش دهید و محدود کنید.