با 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 خود انتخاب کنید:

    حالت تست

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

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

    حالت تولید

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

    برای شروع کار با کتابخانه کلاینت سرور C#، Go، Java، Node.js، PHP، Python یا Ruby، حالت تولید (production mode) را انتخاب کنید.

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

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

وقتی Cloud Firestore فعال می‌کنید، API را نیز در Cloud API Manager فعال می‌کند.

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

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

Web

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

Web

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

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

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

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

    (جایگزین) اعلان وابستگی‌های کتابخانه فایربیس بدون استفاده از 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:26.0.2")
    }

    به دنبال یک ماژول کتابخانه مخصوص کاتلین هستید؟ از نسخه اکتبر ۲۰۲۳ ، توسعه‌دهندگان کاتلین و جاوا می‌توانند به ماژول کتابخانه اصلی متکی باشند (برای جزئیات بیشتر، به سوالات متداول در مورد این ابتکار عمل مراجعه کنید).

Dart

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

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

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

    علاوه بر این، مطمئن شوید که CocoaPods را به نسخه ۱.۹.۱ یا بالاتر ارتقا داده‌اید:

    gem install cocoapods

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

جاوا
  1. کیت توسعه نرم‌افزار (SDK) مدیریت فایربیس را به برنامه خود اضافه کنید:
    • استفاده از گریدل:
      implementation 'com.google.firebase:firebase-admin:9.7.0'
    • استفاده از ماون:
      <dependency>
        <groupId>com.google.firebase</groupId>
        <artifactId>firebase-admin</artifactId>
        <version>9.7.0</version>
      </dependency>
           
  2. برای راه‌اندازی اولیه Cloud Firestore با اعتبارنامه‌های مناسب در محیط خود، دستورالعمل‌های زیر را دنبال کنید.
پایتون
  1. کیت توسعه نرم‌افزار مدیریت فایربیس (Firebase Admin SDK) را به برنامه پایتون خود اضافه کنید:
    pip install --upgrade firebase-admin
  2. برای راه‌اندازی اولیه Cloud Firestore با اعتبارنامه‌های مناسب در محیط خود، دستورالعمل‌های زیر را دنبال کنید.
سی++
  1. برای اضافه کردن Firebase به پروژه ++C خود، دستورالعمل‌ها را دنبال کنید.
  2. رابط کاربری سی پلاس پلاس برای اندروید
    • وابستگی‌های 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 ، باید نسخهٔ ساخته‌شده را کوچک‌سازی کنید.

    • این گزینه را می‌توانید در تنظیمات پخش‌کننده > اندروید > تنظیمات انتشار > کوچک‌سازی (Minify) پیدا کنید.
    • این گزینه‌ها ممکن است در نسخه‌های مختلف یونیتی متفاوت باشند، بنابراین به مستندات رسمی یونیتی و راهنمای اشکال‌زدایی ساخت فایربیس یونیتی مراجعه کنید.
    • اگر پس از فعال کردن minification، تعداد متدهای ارجاع شده هنوز از حد مجاز بیشتر باشد، گزینه دیگر فعال کردن multidex در موارد زیر است:
      • mainTemplate.gradle اگر Custom Gradle Template در تنظیمات Player فعال باشد.
      • یا، فایل build.gradle در سطح ماژول، اگر از اندروید استودیو برای ساخت پروژه اکسپورت شده استفاده می‌کنید.
نود جی اس
  1. کیت توسعه نرم‌افزار (SDK) مدیریت فایربیس را به برنامه خود اضافه کنید:
    npm install firebase-admin --save
  2. برای راه‌اندازی اولیه Cloud Firestore با اعتبارنامه‌های مناسب در محیط خود، دستورالعمل‌های زیر را دنبال کنید.
برو
  1. کیت توسعه نرم‌افزار (SDK) مدیریت فایربیس را به برنامه Go خود اضافه کنید:
    go get firebase.google.com/go
  2. برای راه‌اندازی اولیه Cloud Firestore با اعتبارنامه‌های مناسب در محیط خود، دستورالعمل‌های زیر را دنبال کنید.
پی اچ پی
  1. کتابخانه‌های کلاینت سرور Cloud Firestore (جاوا، Node.js، پایتون، Go، PHP، C# و Ruby) از اعتبارنامه‌های پیش‌فرض برنامه گوگل برای احراز هویت استفاده می‌کنند.
    • برای احراز هویت از محیط توسعه خود، متغیر محیطی 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، پایتون، Go، PHP، C# و Ruby) از اعتبارنامه‌های پیش‌فرض برنامه گوگل برای احراز هویت استفاده می‌کنند.
    • برای احراز هویت از محیط توسعه خود، متغیر محیطی GOOGLE_APPLICATION_CREDENTIALS را طوری تنظیم کنید که به یک فایل کلید حساب سرویس JSON اشاره کند. می‌توانید یک فایل کلید در صفحه اعتبارنامه‌های کنسول API ایجاد کنید.
      export GOOGLE_APPLICATION_CREDENTIALS="path/to/your/keyfile.json"
    • در محیط عملیاتی خود، اگر برنامه خود را روی App Engine یا Compute Engine اجرا می‌کنید و از همان پروژه‌ای که برای Cloud Firestore استفاده می‌کنید، استفاده می‌کنید، نیازی به احراز هویت ندارید. در غیر این صورت، یک حساب کاربری سرویس ایجاد کنید .
  2. کتابخانه C# Cloud Firestore را به برنامه خود در فایل .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، پایتون، Go، PHP، C# و Ruby) از اعتبارنامه‌های پیش‌فرض برنامه گوگل برای احراز هویت استفاده می‌کنند.
    • برای احراز هویت از محیط توسعه خود، متغیر محیطی 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);

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

برای حفظ داده‌ها هنگام قطع اتصال دستگاه، به مستندات فعال‌سازی داده‌های آفلاین مراجعه کنید.

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

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

برای حفظ داده‌ها هنگام قطع اتصال دستگاه، به مستندات فعال‌سازی داده‌های آفلاین مراجعه کنید.

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

let db = Firestore.firestore()
هدف-سی
توجه: این محصول در 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;
جاوا
بسته به محیط شما، SDK مربوط Cloud Firestore به روش‌های مختلفی مقداردهی اولیه می‌شود. در زیر رایج‌ترین روش‌ها آمده است. برای مرجع کامل، به Initialize the Admin SDK مراجعه کنید.
  • مقداردهی اولیه در Google Cloud
    import com.google.auth.oauth2.GoogleCredentials;
    import com.google.cloud.firestore.Firestore;
    
    import com.google.firebase.FirebaseApp;
    import com.google.firebase.FirebaseOptions;
    
    // Use the application default credentials
    GoogleCredentials credentials = GoogleCredentials.getApplicationDefault();
    FirebaseOptions options = new FirebaseOptions.Builder()
        .setCredentials(credentials)
        .setProjectId(projectId)
        .build();
    FirebaseApp.initializeApp(options);
    
    Firestore db = FirestoreClient.getFirestore();
  • روی سرور خودتان مقداردهی اولیه کنید

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

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

    import com.google.auth.oauth2.GoogleCredentials;
    import com.google.cloud.firestore.Firestore;
    
    import com.google.firebase.FirebaseApp;
    import com.google.firebase.FirebaseOptions;
    
    // Use a service account
    InputStream serviceAccount = new FileInputStream("path/to/serviceAccount.json");
    GoogleCredentials credentials = GoogleCredentials.fromStream(serviceAccount);
    FirebaseOptions options = new FirebaseOptions.Builder()
        .setCredentials(credentials)
        .build();
    FirebaseApp.initializeApp(options);
    
    Firestore db = FirestoreClient.getFirestore();
  • پایتون
    بسته به محیط شما، SDK مربوط Cloud Firestore به روش‌های مختلفی مقداردهی اولیه می‌شود. در زیر رایج‌ترین روش‌ها آمده است. برای مرجع کامل، به Initialize the Admin SDK مراجعه کنید.
  • مقداردهی اولیه در Google Cloud
    import firebase_admin
    from firebase_admin import firestore
    
    # Application Default credentials are automatically created.
    app = firebase_admin.initialize_app()
    db = firestore.client()

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

    import firebase_admin
    from firebase_admin import credentials
    from firebase_admin import firestore
    
    # Use the application default credentials.
    cred = credentials.ApplicationDefault()
    
    firebase_admin.initialize_app(cred)
    db = firestore.client()
  • روی سرور خودتان مقداردهی اولیه کنید

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

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

    import firebase_admin
    from firebase_admin import credentials
    from firebase_admin import firestore
    
    # Use a service account.
    cred = credentials.Certificate('path/to/serviceAccount.json')
    
    app = firebase_admin.initialize_app(cred)
    
    db = firestore.client()
  • Python

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

    در کنسول Google Cloud به مسیر IAM & admin > Service accounts بروید. یک کلید خصوصی جدید ایجاد کنید و فایل 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()
  • سی++
    // Make sure the call to `Create()` happens some time before you call Firestore::GetInstance().
    App::Create();
    Firestore* db = Firestore::GetInstance();
    نود جی اس
    بسته به محیط شما، SDK مربوط Cloud Firestore به روش‌های مختلفی مقداردهی اولیه می‌شود. در زیر رایج‌ترین روش‌ها آمده است. برای مرجع کامل، به Initialize the Admin SDK مراجعه کنید.
    • مقداردهی اولیه روی Cloud Functions
      const { initializeApp, applicationDefault, cert } = require('firebase-admin/app');
      const { getFirestore, Timestamp, FieldValue, Filter } = require('firebase-admin/firestore');
      initializeApp();
      
      const db = getFirestore();
      
    • مقداردهی اولیه در Google Cloud
      const { initializeApp, applicationDefault, cert } = require('firebase-admin/app');
      const { getFirestore, Timestamp, FieldValue, Filter } = require('firebase-admin/firestore');
      initializeApp({
        credential: applicationDefault()
      });
      
      const db = getFirestore();
    • روی سرور خودتان مقداردهی اولیه کنید

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

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

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

    پی اچ پی

    برای اطلاعات بیشتر در مورد نصب و ایجاد یک کلاینت 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) ذخیره می‌کند که خود در مجموعه‌ها (Collections) ذخیره می‌شوند. 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)")
    }
    هدف-سی
    توجه: این محصول در 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})
    سی++
    // 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;
      }
    });
    نود جی اس
    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)
    }
    پی اچ پی

    پی اچ پی

    برای اطلاعات بیشتر در مورد نصب و ایجاد یک کلاینت 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)")
    }
    هدف-سی
    توجه: این محصول در 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}
    )
    سی++
    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;
          }
        });
    نود جی اس
    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)
    }
    پی اچ پی

    پی اچ پی

    برای اطلاعات بیشتر در مورد نصب و ایجاد یک کلاینت 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."

    خواندن داده‌ها

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

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

    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)")
    }
    هدف-سی
    توجه: این محصول در 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()}")
    سی++
    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;
      }
    });
    نود جی اس
    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())
    }
    پی اچ پی

    پی اچ پی

    برای اطلاعات بیشتر در مورد نصب و ایجاد یک کلاینت 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 پلتفرم‌های وب، اندروید یا اپل استفاده می‌کنید، از Firebase Authentication و Cloud Firestore Security Rules برای ایمن‌سازی داده‌های خود در Cloud Firestore استفاده کنید.

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

    مجوز مورد نیاز

    // 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 ، یکی از آموزش‌های ویدیویی زیر را تماشا کنید:

    وب
    آی‌او‌اس+
    اندروید

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

    مراحل بعدی

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

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