این راهنمای سریع به شما نشان میدهد که چگونه نسخه سازمانی Cloud Firestore را راهاندازی کنید، دادهها را اضافه کنید، سپس دادههایی را که اخیراً در کنسول Firebase با استفاده از کتابخانههای کلاینت سرور برای C#، Go، Java، Node.js، PHP، Python و Ruby اضافه کردهاید، مشاهده کنید.
از این کتابخانههای کلاینت برای راهاندازی محیطهای سرور ممتاز با دسترسی کامل به پایگاه داده خود استفاده کنید.
ایجاد یک پایگاه داده Cloud Firestore
اگر قبلاً این کار را نکردهاید، یک پروژه Firebase ایجاد کنید: در کنسول Firebase ، روی افزودن پروژه کلیک کنید، سپس دستورالعملهای روی صفحه را برای ایجاد یک پروژه Firebase یا افزودن سرویسهای Firebase به یک پروژه Google Cloud موجود دنبال کنید.
پروژه خود را در کنسول Firebase باز کنید. در پنل سمت چپ، Build را باز کرده و سپس Firestore database را انتخاب کنید.
روی ایجاد پایگاه داده کلیک کنید.
مکانی را برای پایگاه داده خود انتخاب کنید.
اگر نمیتوانید مکانی را انتخاب کنید، پس «مکان منابع پیشفرض Google Cloud » پروژه شما از قبل تنظیم شده است. برخی از منابع پروژه شما (مانند نمونه پیشفرض Cloud Firestore ) وابستگی مکانی مشترکی دارند و مکان آنها را میتوان در حین ایجاد پروژه یا هنگام راهاندازی سرویس دیگری که این وابستگی مکانی را به اشتراک میگذارد، تنظیم کرد.
یک حالت شروع برای 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 برای هر پایگاه داده اعمال کنید.
روی ایجاد کلیک کنید.
وقتی Cloud Firestore فعال میکنید، API را نیز در Cloud API Manager فعال میکند.
محیط توسعه خود را تنظیم کنید
وابستگیها و کتابخانههای کلاینت مورد نیاز را به برنامه خود اضافه کنید.
جاوا
- کیت توسعه نرمافزار (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>
- استفاده از گریدل:
- برای راهاندازی اولیه Cloud Firestore با اعتبارنامههای مناسب در محیط خود، دستورالعملهای زیر را دنبال کنید.
پایتون
- کیت توسعه نرمافزار مدیریت فایربیس (Firebase Admin SDK) را به برنامه پایتون خود اضافه کنید:
pip install --upgrade firebase-admin
- برای راهاندازی اولیه Cloud Firestore با اعتبارنامههای مناسب در محیط خود، دستورالعملهای زیر را دنبال کنید.
نود جی اس
- کیت توسعه نرمافزار (SDK) مدیریت فایربیس را به برنامه خود اضافه کنید:
npm install firebase-admin --save
- برای راهاندازی اولیه Cloud Firestore با اعتبارنامههای مناسب در محیط خود، دستورالعملهای زیر را دنبال کنید.
برو
- کیت توسعه نرمافزار (SDK) مدیریت فایربیس را به برنامه Go خود اضافه کنید:
go get firebase.google.com/go
- برای راهاندازی اولیه Cloud Firestore با اعتبارنامههای مناسب در محیط خود، دستورالعملهای زیر را دنبال کنید.
پی اچ پی
- کتابخانههای کلاینت سرور 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 استفاده میکنید، استفاده میکنید، نیازی به احراز هویت ندارید. در غیر این صورت، یک حساب کاربری سرویس ایجاد کنید .
- برای احراز هویت از محیط توسعه خود، متغیر محیطی
- افزونه gRPC را برای PHP نصب و فعال کنید، که برای استفاده از کتابخانه کلاینت به آن نیاز خواهید داشت.
- کتابخانه PHP Cloud Firestore را به برنامه خود اضافه کنید:
composer require google/cloud-firestore
روبی
- کتابخانههای کلاینت سرور 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 استفاده میکنید، استفاده میکنید، نیازی به احراز هویت ندارید. در غیر این صورت، یک حساب کاربری سرویس ایجاد کنید .
- برای احراز هویت از محیط توسعه خود، متغیر محیطی
- کتابخانه Cloud Firestore Ruby را به برنامه خود در
Gemfileاضافه کنید:gem "google-cloud-firestore"
- وابستگیها را از
Gemfileخود با استفاده از دستور زیر نصب کنید:bundle install
(اختیاری) نمونه اولیه و تست با Firebase Local Emulator Suite
برای توسعهدهندگان موبایل، قبل از صحبت در مورد نحوه نوشتن و خواندن برنامه شما از Cloud Firestore ، بیایید مجموعهای از ابزارهایی را که میتوانید برای نمونهسازی اولیه و آزمایش عملکرد Cloud Firestore استفاده کنید، معرفی کنیم: Firebase Local Emulator Suite . اگر در حال امتحان کردن مدلهای داده مختلف، بهینهسازی قوانین امنیتی خود یا تلاش برای یافتن مقرونبهصرفهترین راه برای تعامل با back-end هستید، امکان کار محلی بدون استقرار سرویسهای زنده میتواند ایده بسیار خوبی باشد.
شبیهساز Cloud Firestore بخشی از Local Emulator Suite است که به برنامه شما امکان میدهد با محتوا و پیکربندی پایگاه داده شبیهسازی شده و همچنین منابع پروژه شبیهسازی شده (توابع، سایر پایگاههای داده و قوانین امنیتی) تعامل داشته باشد.
استفاده از شبیهساز Cloud Firestore فقط شامل چند مرحله است:
- اضافه کردن یک خط کد به فایل پیکربندی آزمایشی برنامه برای اتصال به شبیهساز.
- از ریشه دایرکتوری پروژه محلی خود،
firebase emulators:start. - طبق معمول، فراخوانیها از کد نمونه اولیه برنامه شما با استفاده از SDK پلتفرم Cloud Firestore انجام میشود.
یک راهنمای کامل در مورد Cloud Firestore و Cloud Functions موجود است. همچنین میتوانید نگاهی به مقدمه Local Emulator Suite بیندازید.
مقداردهی اولیه Cloud Firestore
یک نمونه از Cloud Firestore را مقداردهی اولیه کنید:
جاوا
بسته به محیط شما، SDK مربوط به Cloud Firestore به روشهای مختلفی مقداردهی اولیه میشود. در زیر رایجترین روشها آمده است. برای مرجع کامل، به Initialize the Admin SDK مراجعه کنید.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 مراجعه کنید.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 مراجعه کنید.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()
نود جی اس
بسته به محیط شما، 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 مراجعه کنید.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 مراجعه کنید.
سی شارپ
سی شارپ
برای اطلاعات بیشتر در مورد نصب و ایجاد یک کلاینت Cloud Firestore ، به کتابخانههای کلاینت Cloud Firestore مراجعه کنید.
روبی
اضافه کردن داده
Cloud Firestore دادهها را در اسناد (Documents) ذخیره میکند که خود در مجموعهها (Collections) ذخیره میشوند. Cloud Firestore مجموعهها و اسناد را به طور ضمنی و در اولین باری که دادهها را به سند اضافه میکنید، ایجاد میکند. نیازی نیست که شما به طور صریح مجموعهها یا اسناد را ایجاد کنید.
با استفاده از کد مثال زیر، یک مجموعه جدید و یک سند ایجاد کنید.
جاوا
پایتون
Python
نود جی اس
برو
پی اچ پی
پی اچ پی
برای اطلاعات بیشتر در مورد نصب و ایجاد یک کلاینت Cloud Firestore ، به کتابخانههای کلاینت Cloud Firestore مراجعه کنید.
سی شارپ
روبی
حالا یک سند دیگر به مجموعه users اضافه کنید. توجه داشته باشید که این سند شامل یک جفت کلید-مقدار (نام میانی) است که در سند اول وجود ندارد. اسناد موجود در یک مجموعه میتوانند شامل مجموعههای مختلفی از اطلاعات باشند.
جاوا
پایتون
Python
نود جی اس
برو
پی اچ پی
پی اچ پی
برای اطلاعات بیشتر در مورد نصب و ایجاد یک کلاینت Cloud Firestore ، به کتابخانههای کلاینت Cloud Firestore مراجعه کنید.
سی شارپ
روبی
خواندن دادهها
برای تأیید سریع اینکه دادهها را به Cloud Firestore اضافه کردهاید، از نمایشگر داده در کنسول Firebase استفاده کنید.
همچنین میتوانید از متد "get" برای بازیابی کل مجموعه استفاده کنید.
جاوا
پایتون
users_ref = db.collection("users") docs = users_ref.stream() for doc in docs: print(f"{doc.id} => {doc.to_dict()}")
Python
نود جی اس
برو
پی اچ پی
پی اچ پی
برای اطلاعات بیشتر در مورد نصب و ایجاد یک کلاینت Cloud Firestore ، به کتابخانههای کلاینت Cloud Firestore مراجعه کنید.
سی شارپ
روبی
مراحل بعدی
با مباحث زیر دانش خود را عمیقتر کنید:
- مدل داده - درباره نحوه ساختار دادهها در Cloud Firestore ، از جمله دادههای سلسله مراتبی و زیرمجموعهها، بیشتر بدانید.
- افزودن داده — درباره ایجاد و بهروزرسانی دادهها در Cloud Firestore بیشتر بدانید.
- دریافت دادهها — درباره نحوه بازیابی دادهها بیشتر بدانید.
- اجرای پرسوجوهای ساده و مرکب — یاد بگیرید که چگونه پرسوجوهای ساده و مرکب را اجرا کنید.
- مرتبسازی و محدود کردن پرسوجوها یاد بگیرید که چگونه دادههای برگردانده شده توسط پرسوجوهای خود را مرتب و محدود کنید.