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

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

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

  1. اگر شما در حال حاضر، ایجاد یک پروژه فایربیس: در فایربیس کنسول ، روی Add کلیک کنید پروژه، سپس دستورالعمل های روی صفحه را دنبال برای ایجاد یک پروژه فایربیس یا برای اضافه کردن خدمات فایربیس به یک پروژه GCP موجود است.

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

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

    حالت تست

    برای شروع با کتابخانه های تلفن همراه و سرویس گیرنده وب خوب است ، اما به هر کسی اجازه می دهد داده های شما را بخواند و رونویسی کند. پس از آزمایش، مطمئن شوید که به بررسی داده های شما امن بخش.

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

    حالت قفل شده

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

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

  4. یک SELECT محل برای پایگاه داده خود را.

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

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

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

هنگامی که شما را قادر ابر Firestore، آن را نیز از API در را قادر می سازد ابر API مدیر .

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

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

نسخه وب 8

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

نسخه وب 9

  1. دستورالعمل ها را به دنبال اضافه فایربیس به برنامه وب خود .
  2. SDK Cloud Firestore SDK به صورت بسته npm در دسترس است.
    npm install firebase@9.1.0 --save
    
    شما نیاز به وارد کردن فایربیس و ابر Firestore.
    import { initializeApp } from "firebase/app";
    import { getFirestore } from "firebase/firestore";
    
iOS
  1. دستورالعمل ها را به دنبال اضافه فایربیس به برنامه iOS خود .
  2. اضافه کردن غلاف ابر Firestore به خود Podfile
    pod 'Firebase/Firestore'
    
    # Optionally, include the Swift extensions if you're using Swift.
    pod 'FirebaseFirestoreSwift'
    
  3. فایل را ذخیره کنید و اجرا pod install .

جاوا

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

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

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

    در صورت عدم استفاده از Firebase BoM ، باید هر نسخه کتابخانه 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:23.0.3'
    }
    

Kotlin+KTX

  1. دستورالعمل ها را به دنبال اضافه فایربیس به برنامه آندروید خود را .
  2. با استفاده از فایربیس آندروید BOM ، اعلام وابستگی برای کتابخانه ابر Firestore آندروید در ماژول خود را (در سطح برنامه) فایل Gradle (معمولا app/build.gradle ).
    dependencies {
        // Import the BoM for the Firebase platform
        implementation platform('com.google.firebase:firebase-bom:28.4.1')
    
        // Declare the dependency for the Cloud Firestore library
        // When using the BoM, you don't specify versions in Firebase library dependencies
        implementation 'com.google.firebase:firebase-firestore-ktx'
    }
    

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

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

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

    توجه داشته باشید که در صورت استفاده از کتابخانه فایربیس های متعدد در برنامه شما، ما به شدت توصیه با استفاده از BOM به مدیریت نسخه های کتابخانه، که تضمین می کند که تمام نسخه های سازگار است.

    dependencies {
        // Declare the dependency for the Cloud Firestore library
        // When NOT using the BoM, you must specify versions in Firebase library dependencies
        implementation 'com.google.firebase:firebase-firestore-ktx:23.0.3'
    }
    
جاوا
  1. SDK سرپرست Firebase را به برنامه خود اضافه کنید:
    • با استفاده از Gradle:
      compile 'com.google.firebase:firebase-admin:8.1.0'
      
    • با استفاده از Maven را:
      <dependency>
        <groupId>com.google.firebase</groupId>
        <artifactId>firebase-admin</artifactId>
        <version>8.1.0</version>
      </dependency>
           
  2. برای راه اندازی اولیه Cloud Firestore با اعتبارنامه مناسب در محیط خود ، دستورالعمل های زیر را دنبال کنید.
پایتون
  1. اضافه کردن فایربیس محیط مدیریت SDK برای برنامه پایتون شما:
    pip install --upgrade firebase-admin
  2. برای راه اندازی اولیه Cloud Firestore با اعتبار مناسب در محیط خود ، دستورالعمل های زیر را دنبال کنید.
C ++
  1. دستورالعمل ها را به دنبال اضافه فایربیس به C ++ پروژه خود را .
  2. رابط C ++ برای اندروید
    • وابستگی به گرادل اضافه کردن زیر به ماژول خود را (در سطح برنامه) فایل 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. برای تنظیم یکپارچه سازی دسکتاپ، و اضافه کردن فایربیس را به پروژه خود C ++ .
وحدت
  1. دستورالعمل ها را به دنبال اضافه فایربیس به پروژه وحدت خود را .
  2. رابط یونیتی برای اندروید
  3. هنگام ساختن برای Android ، ProGuarding را فعال کنید تا از محدودیت Android DEX جلوگیری کنید. برای انجام این کار ، در ویرایشگر Unity:

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

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

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

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

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

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

مفصل خرید شامل ابر Firestore و ابر توابع در دسترس است. همچنین شما باید یک نگاه داشته مقدمه محلی شبیه ساز سوئیت .

راه اندازی Cloud Firestore

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

نسخه وب 8

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

var db = firebase.firestore();
مقادیر `initializeApp` را می توان در برنامه وب خود را پیدا ` firebaseConfig` . به اصرار داده زمانی که دستگاه اتصال خود را از دست، نگاه کنید به فعال کردن آفلاین اطلاعات اسناد و مدارک.

نسخه وب 9

// Initialize Cloud Firestore through Firebase
import { initializeApp } from "firebase/app"
import { getFirestore } from "firebase/firestore"
const firebaseApp = initializeApp({
  apiKey: '### FIREBASE API KEY ###',
  authDomain: '### FIREBASE AUTH DOMAIN ###',
  projectId: '### CLOUD FIRESTORE PROJECT ID ###'
});

const db = getFirestore();
مقادیر `initializeApp` را می توان در برنامه وب خود را پیدا ` firebaseConfig` . به اصرار داده زمانی که دستگاه اتصال خود را از دست، نگاه کنید به فعال کردن آفلاین اطلاعات اسناد و مدارک.
سریع
import Firebase
FirebaseApp.configure()

let db = Firestore.firestore()
هدف-ج
@import Firebase;

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

جاوا

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

Kotlin+KTX

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

    برای استفاده از فایربیس محیط مدیریت SDK بر روی سرور خود، استفاده از یک حساب خدمات .

    برو به IAM و مدیریت> سرویس حساب در پلت فرم ابر کنسول. یک کلید خصوصی جدید ایجاد کرده و فایل 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 SDK به روش های مختلف راه اندازی می شود. در زیر متداول ترین روش ها آمده است. برای یک مرجع کامل، و مقداردهی اولیه SDK محیط مدیریت .
  • مقداردهی اولیه در Google Cloud بستر های نرم افزاری
    import firebase_admin
    from firebase_admin import credentials
    from firebase_admin import firestore
    
    # Use the application default credentials
    cred = credentials.ApplicationDefault()
    firebase_admin.initialize_app(cred, {
      'projectId': project_id,
    })
    
    db = firestore.client()
    
  • ابتدا روی سرور خود راه اندازی کنید

    برای استفاده از فایربیس محیط مدیریت SDK بر روی سرور خود، استفاده از یک حساب خدمات .

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

    import firebase_admin
    from firebase_admin import credentials
    from firebase_admin import firestore
    
    # Use a service account
    cred = credentials.Certificate('path/to/serviceAccount.json')
    firebase_admin.initialize_app(cred)
    
    db = firestore.client()
    
  • پایتون

    بسته به محیط شما ، SDK Cloud Firestore SDK به روش های مختلف راه اندازی می شود. در زیر متداول ترین روش ها آمده است. برای یک مرجع کامل، و مقداردهی اولیه SDK محیط مدیریت .
  • مقداردهی اولیه در Google Cloud بستر های نرم افزاری
    import firebase_admin
    from firebase_admin import credentials
    from firebase_admin import firestore
    
    # Use the application default credentials
    cred = credentials.ApplicationDefault()
    firebase_admin.initialize_app(cred, {
      'projectId': project_id,
    })
    
    db = firestore.AsyncClient()
    
  • ابتدا روی سرور خود راه اندازی کنید

    برای استفاده از فایربیس محیط مدیریت SDK بر روی سرور خود، استفاده از یک حساب خدمات .

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

    import firebase_admin
    from firebase_admin import credentials
    from firebase_admin import firestore
    
    # Use a service account
    cred = credentials.Certificate('path/to/serviceAccount.json')
    firebase_admin.initialize_app(cred)
    
    db = firestore.AsyncClient()
    
  • C ++
    // Make sure the call to `Create()` happens some time before you call Firestore::GetInstance().
    App::Create();
    Firestore* db = Firestore::GetInstance();
    Node.js
    بسته به محیط شما ، SDK Cloud Firestore SDK به روش های مختلف راه اندازی می شود. در زیر متداول ترین روش ها آمده است. برای یک مرجع کامل، و مقداردهی اولیه SDK محیط مدیریت .
    • مقداردهی اولیه در توابع ابر
      const admin = require('firebase-admin');
      admin.initializeApp();
      
      const db = admin.firestore();
      
    • مقداردهی اولیه در Google Cloud بستر های نرم افزاری
      const admin = require('firebase-admin');
      admin.initializeApp({
        credential: admin.credential.applicationDefault()
      });
      
      const db = admin.firestore();
    • ابتدا روی سرور خود راه اندازی کنید

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

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

    برای استفاده از فایربیس محیط مدیریت SDK بر روی سرور خود، استفاده از یک حساب خدمات .

    برو به IAM و مدیریت> سرویس حساب در پلت فرم ابر کنسول. یک کلید خصوصی جدید ایجاد کرده و فایل 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()
    
  • پی اچ پی
    use Google\Cloud\Firestore\FirestoreClient;
    
    /**
     * Initialize Cloud Firestore with default project ID.
     */
    function setup_client_create()
    {
        // Create the Cloud Firestore client
        $db = new FirestoreClient();
        printf('Created Cloud Firestore client with default project ID.' . PHP_EOL);
    }
    وحدت
    using Firebase.Firestore;
    using Firebase.Extensions;
    FirebaseFirestore db = FirebaseFirestore.DefaultInstance;
    سی شارپ
    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 برای اولین بار که اطلاعات را به سند اضافه می کنید ، به طور ضمنی مجموعه ها و اسناد را ایجاد می کند. نیازی به صراحت ایجاد مجموعه یا اسناد نیست.

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

    نسخه وب 9

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

    نسخه وب 8

    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);
    });
    سریع
    // Add a new document with a generated ID
    var ref: DocumentReference? = nil
    ref = db.collection("users").addDocument(data: [
        "first": "Ada",
        "last": "Lovelace",
        "born": 1815
    ]) { err in
        if let err = err {
            print("Error adding document: \(err)")
        } else {
            print("Document added with ID: \(ref!.documentID)")
        }
    }
    هدف-ج
    // Add a new document with a generated ID
    __block FIRDocumentReference *ref =
        [[self.db collectionWithPath:@"users"] addDocumentWithData:@{
          @"first": @"Ada",
          @"last": @"Lovelace",
          @"born": @1815
        } completion:^(NSError * _Nullable error) {
          if (error != nil) {
            NSLog(@"Error adding document: %@", error);
          } else {
            NSLog(@"Document added with ID: %@", ref.documentID);
          }
        }];

    جاوا

    // Create a new user with a first and last name
    Map<String, Object> user = new HashMap<>();
    user.put("first", "Ada");
    user.put("last", "Lovelace");
    user.put("born", 1815);
    
    // Add a new document with a generated ID
    db.collection("users")
            .add(user)
            .addOnSuccessListener(new OnSuccessListener<DocumentReference>() {
                @Override
                public void onSuccess(DocumentReference documentReference) {
                    Log.d(TAG, "DocumentSnapshot added with ID: " + documentReference.getId());
                }
            })
            .addOnFailureListener(new OnFailureListener() {
                @Override
                public void onFailure(@NonNull Exception e) {
                    Log.w(TAG, "Error adding document", e);
                }
            });

    Kotlin+KTX

    // Create a new user with a first and last name
    val user = hashMapOf(
            "first" to "Ada",
            "last" to "Lovelace",
            "born" to 1815
    )
    
    // Add a new document with a generated ID
    db.collection("users")
        .add(user)
        .addOnSuccessListener { documentReference ->
            Log.d(TAG, "DocumentSnapshot added with ID: ${documentReference.id}")
        }
        .addOnFailureListener { e ->
            Log.w(TAG, "Error adding document", e)
        }
    جاوا
    DocumentReference docRef = db.collection("users").document("alovelace");
    // Add document data  with id "alovelace" using a hashmap
    Map<String, Object> data = new HashMap<>();
    data.put("first", "Ada");
    data.put("last", "Lovelace");
    data.put("born", 1815);
    //asynchronously write data
    ApiFuture<WriteResult> result = docRef.set(data);
    // ...
    // result.get() blocks on response
    System.out.println("Update time : " + result.get().getUpdateTime());
    پایتون
    doc_ref = db.collection(u'users').document(u'alovelace')
    doc_ref.set({
        u'first': u'Ada',
        u'last': u'Lovelace',
        u'born': 1815
    })

    پایتون

    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()
                  << '\n';
      } else {
        std::cout << "Error adding document: " << future.error_message() << '\n';
      }
    });
    Node.js
    const docRef = db.collection('users').doc('alovelace');
    
    await docRef.set({
      first: 'Ada',
      last: 'Lovelace',
      born: 1815
    });
    برو
    _, _, err := client.Collection("users").Add(ctx, map[string]interface{}{
    	"first": "Ada",
    	"last":  "Lovelace",
    	"born":  1815,
    })
    if err != nil {
    	log.Fatalf("Failed adding alovelace: %v", err)
    }
    پی اچ پی
    $docRef = $db->collection('samples/php/users')->document('lovelace');
    $docRef->set([
        'first' => 'Ada',
        'last' => 'Lovelace',
        'born' => 1815
    ]);
    printf('Added data to the lovelace document in the users collection.' . PHP_EOL);
    وحدت
    DocumentReference docRef = db.Collection("users").Document("alovelace");
    Dictionary<string, object> user = new Dictionary<string, object>
    {
    	{ "First", "Ada" },
    	{ "Last", "Lovelace" },
    	{ "Born", 1815 },
    };
    docRef.SetAsync(user).ContinueWithOnMainThread(task => {
    	Debug.Log("Added data to the alovelace document in the users collection.");
    });
    سی شارپ
    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 مجموعه است. توجه داشته باشید که این سند شامل یک جفت کلید-مقدار (نام میانی) است که در سند اول ظاهر نمی شود. اسناد موجود در یک مجموعه می تواند شامل مجموعه ای از اطلاعات مختلف باشد.

    نسخه وب 9

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

    نسخه وب 8

    // 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);
    });
    سریع
    // Add a second document with a generated ID.
    ref = db.collection("users").addDocument(data: [
        "first": "Alan",
        "middle": "Mathison",
        "last": "Turing",
        "born": 1912
    ]) { err in
        if let err = err {
            print("Error adding document: \(err)")
        } else {
            print("Document added with ID: \(ref!.documentID)")
        }
    }
    هدف-ج
    // Add a second document with a generated ID.
    __block FIRDocumentReference *ref =
        [[self.db collectionWithPath:@"users"] addDocumentWithData:@{
          @"first": @"Alan",
          @"middle": @"Mathison",
          @"last": @"Turing",
          @"born": @1912
        } completion:^(NSError * _Nullable error) {
          if (error != nil) {
            NSLog(@"Error adding document: %@", error);
          } else {
            NSLog(@"Document added with ID: %@", ref.documentID);
          }
        }];

    جاوا

    // Create a new user with a first, middle, and last name
    Map<String, Object> user = new HashMap<>();
    user.put("first", "Alan");
    user.put("middle", "Mathison");
    user.put("last", "Turing");
    user.put("born", 1912);
    
    // Add a new document with a generated ID
    db.collection("users")
            .add(user)
            .addOnSuccessListener(new OnSuccessListener<DocumentReference>() {
                @Override
                public void onSuccess(DocumentReference documentReference) {
                    Log.d(TAG, "DocumentSnapshot added with ID: " + documentReference.getId());
                }
            })
            .addOnFailureListener(new OnFailureListener() {
                @Override
                public void onFailure(@NonNull Exception e) {
                    Log.w(TAG, "Error adding document", e);
                }
            });

    Kotlin+KTX

    // Create a new user with a first, middle, and last name
    val user = hashMapOf(
            "first" to "Alan",
            "middle" to "Mathison",
            "last" to "Turing",
            "born" to 1912
    )
    
    // Add a new document with a generated ID
    db.collection("users")
        .add(user)
        .addOnSuccessListener { documentReference ->
            Log.d(TAG, "DocumentSnapshot added with ID: ${documentReference.id}")
        }
        .addOnFailureListener { e ->
            Log.w(TAG, "Error adding document", e)
        }
    جاوا
    DocumentReference docRef = db.collection("users").document("aturing");
    // Add document data with an additional field ("middle")
    Map<String, Object> data = new HashMap<>();
    data.put("first", "Alan");
    data.put("middle", "Mathison");
    data.put("last", "Turing");
    data.put("born", 1912);
    
    ApiFuture<WriteResult> result = docRef.set(data);
    System.out.println("Update time : " + result.get().getUpdateTime());
    پایتون
    doc_ref = db.collection(u'users').document(u'aturing')
    doc_ref.set({
        u'first': u'Alan',
        u'middle': u'Mathison',
        u'last': u'Turing',
        u'born': 1912
    })

    پایتون

    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() << '\n';
          } else {
            std::cout << "Error adding document: " << future.error_message()
                      << '\n';
          }
        });
    Node.js
    const aTuringRef = db.collection('users').doc('aturing');
    
    await aTuringRef.set({
      'first': 'Alan',
      'middle': 'Mathison',
      'last': 'Turing',
      'born': 1912
    });
    برو
    _, _, err = client.Collection("users").Add(ctx, map[string]interface{}{
    	"first":  "Alan",
    	"middle": "Mathison",
    	"last":   "Turing",
    	"born":   1912,
    })
    if err != nil {
    	log.Fatalf("Failed adding aturing: %v", err)
    }
    پی اچ پی
    $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."

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

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

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

    نسخه وب 9

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

    نسخه وب 8

    db.collection("users").get().then((querySnapshot) => {
        querySnapshot.forEach((doc) => {
            console.log(`${doc.id} => ${doc.data()}`);
        });
    });
    سریع
    db.collection("users").getDocuments() { (querySnapshot, err) in
        if let err = err {
            print("Error getting documents: \(err)")
        } else {
            for document in querySnapshot!.documents {
                print("\(document.documentID) => \(document.data())")
            }
        }
    }
    هدف-ج
    [[self.db collectionWithPath:@"users"]
        getDocumentsWithCompletion:^(FIRQuerySnapshot * _Nullable snapshot,
                                     NSError * _Nullable error) {
          if (error != nil) {
            NSLog(@"Error getting documents: %@", error);
          } else {
            for (FIRDocumentSnapshot *document in snapshot.documents) {
              NSLog(@"%@ => %@", document.documentID, document.data);
            }
          }
        }];

    جاوا

    db.collection("users")
            .get()
            .addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
                @Override
                public void onComplete(@NonNull Task<QuerySnapshot> task) {
                    if (task.isSuccessful()) {
                        for (QueryDocumentSnapshot document : task.getResult()) {
                            Log.d(TAG, document.getId() + " => " + document.getData());
                        }
                    } else {
                        Log.w(TAG, "Error getting documents.", task.getException());
                    }
                }
            });

    Kotlin+KTX

    db.collection("users")
            .get()
            .addOnSuccessListener { result ->
                for (document in result) {
                    Log.d(TAG, "${document.id} => ${document.data}")
                }
            }
            .addOnFailureListener { exception ->
                Log.w(TAG, "Error getting documents.", exception)
            }
    جاوا
    // asynchronously retrieve all users
    ApiFuture<QuerySnapshot> query = db.collection("users").get();
    // ...
    // query.get() blocks on response
    QuerySnapshot querySnapshot = query.get();
    List<QueryDocumentSnapshot> documents = querySnapshot.getDocuments();
    for (QueryDocumentSnapshot document : documents) {
      System.out.println("User: " + document.getId());
      System.out.println("First: " + document.getString("first"));
      if (document.contains("middle")) {
        System.out.println("Middle: " + document.getString("middle"));
      }
      System.out.println("Last: " + document.getString("last"));
      System.out.println("Born: " + document.getLong("born"));
    }
    پایتون
    users_ref = db.collection(u'users')
    docs = users_ref.stream()
    
    for doc in docs:
        print(f'{doc.id} => {doc.to_dict()}')

    پایتون

    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 << '\n';
        }
      } else {
        std::cout << "Error getting documents: " << future.error_message()
                  << '\n';
      }
    });
    Node.js
    const snapshot = await db.collection('users').get();
    snapshot.forEach((doc) => {
      console.log(doc.id, '=>', doc.data());
    });
    برو
    iter := client.Collection("users").Documents(ctx)
    for {
    	doc, err := iter.Next()
    	if err == iterator.Done {
    		break
    	}
    	if err != nil {
    		log.Fatalf("Failed to iterate: %v", err)
    	}
    	fmt.Println(doc.Data())
    }
    پی اچ پی
    $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

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

    اگر شما در حال استفاده از وب، آندروید، و یا در iOS SDK، استفاده فایربیس احراز هویت و ابر Firestore قوانین امنیتی برای تامین امنیت داده های خود را در ابر Firestore.

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

    حق الزامی است

    // Allow read/write access on all documents to any user signed in to the application
    service cloud.firestore {
      match /databases/{database}/documents {
        match /{document=**} {
          allow read, write: if request.auth != null;
        }
      }
    }
    

    حالت قفل شده

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

    حالت تست

    // Allow read/write access to all users under any conditions
    // Warning: **NEVER** use this rule set in production; it allows
    // anyone to overwrite your entire database.
    service cloud.firestore {
      match /databases/{database}/documents {
        match /{document=**} {
          allow read, write: if true;
        }
      }
    }
    

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

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

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

    iOS
    اندروید

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

    مراحل بعدی

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