این آموزش سریع به شما نشان میدهد که چگونه Cloud Firestore راهاندازی کنید، دادهها را اضافه کنید، سپس از عملیات Core یا عملیات Pipeline برای پرسوجو از دادههایی که اخیراً در کنسول Firebase با استفاده از کتابخانههای کلاینت سرور برای جاوا، Node.js و پایتون اضافه کردهاید، استفاده کنید.
از این کتابخانههای کلاینت برای راهاندازی محیطهای سرور ممتاز با دسترسی کامل به پایگاه داده خود استفاده کنید.
ایجاد یک پایگاه داده Cloud Firestore
اگر قبلاً این کار را نکردهاید، یک پروژه Firebase ایجاد کنید: در کنسول Firebase ، روی افزودن پروژه کلیک کنید، سپس دستورالعملهای روی صفحه را برای ایجاد یک پروژه Firebase یا افزودن سرویسهای Firebase به یک پروژه Google Cloud موجود دنبال کنید.
پروژه خود را در کنسول Firebase باز کنید. در پنل سمت چپ، Build را باز کرده و سپس Firestore database را انتخاب کنید.
روی ایجاد پایگاه داده کلیک کنید.
برای حالت پایگاه داده، Enterprise را انتخاب کنید.
برای حالت عملیات، Firestore را در حالت بومی (Native Mode) انتخاب کنید که از عملیات Core و Pipeline پشتیبانی میکند.
مکانی را برای پایگاه داده خود انتخاب کنید.
یک حالت شروع برای Cloud Firestore Security Rules خود انتخاب کنید:
- حالت تست
برای شروع کار با کتابخانههای کلاینت موبایل و وب خوب است، اما به هر کسی اجازه میدهد دادههای شما را بخواند و بازنویسی کند. پس از آزمایش، حتماً بخش «دادههای خود را ایمن کنید» را مرور کنید.
برای شروع کار با وب، پلتفرمهای اپل یا اندروید SDK، حالت تست را انتخاب کنید.
- حالت تولید
تمام خواندنها و نوشتنها را از کلاینتهای موبایل و وب رد میکند. سرورهای برنامهی احراز هویت شدهی شما (Node.js، Python، Java) همچنان میتوانند به پایگاه دادهی شما دسترسی داشته باشند.
مجموعه اولیه Cloud Firestore Security Rules شما بر روی پایگاه داده پیشفرض Cloud Firestore شما اعمال خواهد شد. اگر چندین پایگاه داده برای پروژه خود ایجاد کنید، میتوانید Cloud Firestore Security Rules برای هر پایگاه داده اعمال کنید.
روی ایجاد کلیک کنید.
وقتی Cloud Firestore فعال میکنید، API را نیز در Cloud API Manager فعال میکند.
محیط توسعه خود را تنظیم کنید
وابستگیها و کتابخانههای کلاینت مورد نیاز را به برنامه خود اضافه کنید.
نود جی اس
- کیت توسعه نرمافزار (SDK) مدیریت فایربیس را به برنامه خود اضافه کنید:
npm install firebase-admin --save
- برای راهاندازی اولیه Cloud Firestore با اعتبارنامههای مناسب در محیط خود، دستورالعملهای زیر را دنبال کنید.
پایتون
- کیت توسعه نرمافزار مدیریت فایربیس (Firebase Admin SDK) را به برنامه پایتون خود اضافه کنید:
pip install --upgrade firebase-admin
- برای راهاندازی اولیه Cloud Firestore با اعتبارنامههای مناسب در محیط خود، دستورالعملهای زیر را دنبال کنید.
جاوا
- کیت توسعه نرمافزار (SDK) مدیریت فایربیس را به برنامه خود اضافه کنید:
- استفاده از گریدل:
implementation 'com.google.firebase:firebase-admin:9.7.1'
- استفاده از ماون:
<dependency> <groupId>com.google.firebase</groupId> <artifactId>firebase-admin</artifactId> <version>9.7.1</version> </dependency>
- استفاده از گریدل:
- برای راهاندازی اولیه Cloud Firestore با اعتبارنامههای مناسب در محیط خود، دستورالعملهای زیر را دنبال کنید.
مقداردهی اولیه Cloud Firestore
یک نمونه از Cloud Firestore را مقداردهی اولیه کنید:
نود جی اس
بسته به محیط شما، 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 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()
جاوا
بسته به محیط شما، 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();
اضافه کردن دادهها با استفاده از عملیات اصلی
برای بررسی عملیات اصلی (Core operations) و عملیات خط لوله (Pipeline operations) برای پرس و جو از دادهها، دادهها را با استفاده از عملیات اصلی (Core operations) به پایگاه داده خود اضافه کنید.
Cloud Firestore دادهها را در اسناد (Documents) ذخیره میکند که خود در مجموعهها (Collections) ذخیره میشوند. 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()}")
جاوا
خواندن دادهها با استفاده از عملیات Pipeline
حالا میتوانید تجربهی پرسوجوی Pipeline را با تجربهی پرسوجوی Core مقایسه کنید.
نود جی اس
const readDataPipeline = db.pipeline() .collection("users"); // Execute the pipeline and handle the result try { const querySnapshot = await readDataPipeline.execute(); querySnapshot.results.forEach((result) => { console.log(`${result.id} => ${result.data()}`); }); } catch (error) { console.error("Error getting documents: ", error); }
پایتون
pipeline = client.pipeline().collection("users") for result in pipeline.execute(): print(f"{result.id} => {result.data()}")
جاوا
Pipeline pipeline = firestore.pipeline().collection("users"); ApiFuture<Pipeline.Snapshot> future = pipeline.execute(); for (com.google.cloud.firestore.PipelineResult result : future.get().getResults()) { System.out.println(result.getId() + " => " + result.getData()); } // or, asynchronously pipeline.execute( new ApiStreamObserver<com.google.cloud.firestore.PipelineResult>() { @Override public void onNext(com.google.cloud.firestore.PipelineResult result) { System.out.println(result.getId() + " => " + result.getData()); } @Override public void onError(Throwable t) { System.err.println(t); } @Override public void onCompleted() { System.out.println("done"); } });
مراحل بعدی
دانش خود را در مورد عملیات هسته و خط لوله با مباحث زیر عمیقتر کنید:
- مطمئن شوید که با تفاوتهای بین عملیات Core و Pipeline آشنا هستید.
- درباره پرسوجو با عملیات اصلی بیشتر بدانید
- درباره پرسوجو با عملیات Pipeline بیشتر بدانید.
این آموزش سریع به شما نشان میدهد که چگونه Cloud Firestore راهاندازی کنید، دادهها را اضافه کنید، سپس از عملیات Core یا عملیات Pipeline برای پرسوجو از دادههایی که اخیراً در کنسول Firebase با استفاده از کتابخانههای کلاینت سرور برای جاوا، Node.js و پایتون اضافه کردهاید، استفاده کنید.
از این کتابخانههای کلاینت برای راهاندازی محیطهای سرور ممتاز با دسترسی کامل به پایگاه داده خود استفاده کنید.
ایجاد یک پایگاه داده Cloud Firestore
اگر قبلاً این کار را نکردهاید، یک پروژه Firebase ایجاد کنید: در کنسول Firebase ، روی افزودن پروژه کلیک کنید، سپس دستورالعملهای روی صفحه را برای ایجاد یک پروژه Firebase یا افزودن سرویسهای Firebase به یک پروژه Google Cloud موجود دنبال کنید.
پروژه خود را در کنسول Firebase باز کنید. در پنل سمت چپ، Build را باز کرده و سپس Firestore database را انتخاب کنید.
روی ایجاد پایگاه داده کلیک کنید.
برای حالت پایگاه داده، Enterprise را انتخاب کنید.
برای حالت عملیات، Firestore را در حالت بومی (Native Mode) انتخاب کنید که از عملیات Core و Pipeline پشتیبانی میکند.
مکانی را برای پایگاه داده خود انتخاب کنید.
یک حالت شروع برای Cloud Firestore Security Rules خود انتخاب کنید:
- حالت تست
برای شروع کار با کتابخانههای کلاینت موبایل و وب خوب است، اما به هر کسی اجازه میدهد دادههای شما را بخواند و بازنویسی کند. پس از آزمایش، حتماً بخش «دادههای خود را ایمن کنید» را مرور کنید.
برای شروع کار با وب، پلتفرمهای اپل یا اندروید SDK، حالت تست را انتخاب کنید.
- حالت تولید
تمام خواندنها و نوشتنها را از کلاینتهای موبایل و وب رد میکند. سرورهای برنامهی احراز هویت شدهی شما (Node.js، Python، Java) همچنان میتوانند به پایگاه دادهی شما دسترسی داشته باشند.
مجموعه اولیه Cloud Firestore Security Rules شما بر روی پایگاه داده پیشفرض Cloud Firestore شما اعمال خواهد شد. اگر چندین پایگاه داده برای پروژه خود ایجاد کنید، میتوانید Cloud Firestore Security Rules برای هر پایگاه داده اعمال کنید.
روی ایجاد کلیک کنید.
وقتی Cloud Firestore فعال میکنید، API را نیز در Cloud API Manager فعال میکند.
محیط توسعه خود را تنظیم کنید
وابستگیها و کتابخانههای کلاینت مورد نیاز را به برنامه خود اضافه کنید.
نود جی اس
- کیت توسعه نرمافزار (SDK) مدیریت فایربیس را به برنامه خود اضافه کنید:
npm install firebase-admin --save
- برای راهاندازی اولیه Cloud Firestore با اعتبارنامههای مناسب در محیط خود، دستورالعملهای زیر را دنبال کنید.
پایتون
- کیت توسعه نرمافزار مدیریت فایربیس (Firebase Admin SDK) را به برنامه پایتون خود اضافه کنید:
pip install --upgrade firebase-admin
- برای راهاندازی اولیه Cloud Firestore با اعتبارنامههای مناسب در محیط خود، دستورالعملهای زیر را دنبال کنید.
جاوا
- کیت توسعه نرمافزار (SDK) مدیریت فایربیس را به برنامه خود اضافه کنید:
- استفاده از گریدل:
implementation 'com.google.firebase:firebase-admin:9.7.1'
- استفاده از ماون:
<dependency> <groupId>com.google.firebase</groupId> <artifactId>firebase-admin</artifactId> <version>9.7.1</version> </dependency>
- استفاده از گریدل:
- برای راهاندازی اولیه Cloud Firestore با اعتبارنامههای مناسب در محیط خود، دستورالعملهای زیر را دنبال کنید.
مقداردهی اولیه Cloud Firestore
یک نمونه از Cloud Firestore را مقداردهی اولیه کنید:
نود جی اس
بسته به محیط شما، 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 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()
جاوا
بسته به محیط شما، 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();
اضافه کردن دادهها با استفاده از عملیات اصلی
برای بررسی عملیات اصلی (Core operations) و عملیات خط لوله (Pipeline operations) برای پرس و جو از دادهها، دادهها را با استفاده از عملیات اصلی (Core operations) به پایگاه داده خود اضافه کنید.
Cloud Firestore دادهها را در اسناد (Documents) ذخیره میکند که خود در مجموعهها (Collections) ذخیره میشوند. 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()}")
جاوا
خواندن دادهها با استفاده از عملیات Pipeline
حالا میتوانید تجربهی پرسوجوی Pipeline را با تجربهی پرسوجوی Core مقایسه کنید.
نود جی اس
const readDataPipeline = db.pipeline() .collection("users"); // Execute the pipeline and handle the result try { const querySnapshot = await readDataPipeline.execute(); querySnapshot.results.forEach((result) => { console.log(`${result.id} => ${result.data()}`); }); } catch (error) { console.error("Error getting documents: ", error); }
پایتون
pipeline = client.pipeline().collection("users") for result in pipeline.execute(): print(f"{result.id} => {result.data()}")
جاوا
Pipeline pipeline = firestore.pipeline().collection("users"); ApiFuture<Pipeline.Snapshot> future = pipeline.execute(); for (com.google.cloud.firestore.PipelineResult result : future.get().getResults()) { System.out.println(result.getId() + " => " + result.getData()); } // or, asynchronously pipeline.execute( new ApiStreamObserver<com.google.cloud.firestore.PipelineResult>() { @Override public void onNext(com.google.cloud.firestore.PipelineResult result) { System.out.println(result.getId() + " => " + result.getData()); } @Override public void onError(Throwable t) { System.err.println(t); } @Override public void onCompleted() { System.out.println("done"); } });
مراحل بعدی
دانش خود را در مورد عملیات هسته و خط لوله با مباحث زیر عمیقتر کنید:
- مطمئن شوید که با تفاوتهای بین عملیات Core و Pipeline آشنا هستید.
- درباره پرسوجو با عملیات اصلی بیشتر بدانید
- درباره پرسوجو با عملیات Pipeline بیشتر بدانید.