ایجاد و مدیریت پایگاه‌های داده

این صفحه نحوه ایجاد، به‌روزرسانی، و حذف Cloud Firestore پایگاه‌های داده را شرح می‌دهد. می‌توانید چندین پایگاه داده Cloud Firestore برای هر پروژه ایجاد کنید. می‌توانید از چندین پایگاه داده برای راه‌اندازی محیط‌های تولید و آزمایش، جداسازی داده‌های مشتری، و منطقه‌ای کردن داده‌ها استفاده کنید.

استفاده از سطح رایگان

Cloud Firestore سطح رایگان ارائه می‌دهد که به شما امکان می‌دهد بدون هزینه شروع کنید.

سطح رایگان فقط برای یک پایگاه داده Cloud Firestore در هر پروژه اعمال می‌شود. اولین پایگاه داده‌ای که در پروژه‌ای بدون پایگاه داده ردیف رایگان ایجاد می‌شود، ردیف رایگان را دریافت خواهد کرد. اگر پایگاه داده‌ای که ردیف رایگان برای آن اعمال شده است حذف شود، پایگاه داده بعدی که ایجاد می‌شود ردیف رایگان را دریافت خواهد کرد.

قبل از شروع

قبل‌از ایجاد پایگاه داده، باید موارد زیر را تکمیل کنید:

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

  2. نقش‌های مناسب «مدیریت هویت و دسترسی‌ها» را طبق روشی که در بخش بعدی توضیح داده شده است اختصاص دهید.

نقش‌های الزامی

برای ایجاد و مدیریت پایگاه‌های داده، به نقش «مدیریت هویت و دسترسی‌ها» Owner یا Datastore Owner نیاز دارید. این نقش‌ها اجازه‌های لازم را اعطا می‌کنند.

مجوزهای لازم

برای مدیریت پایگاه‌های داده، به اجازه‌های زیر نیاز دارید:

  • ایجاد پایگاه داده: datastore.databases.create
  • خواندن پیکربندی پایگاه داده: datastore.databases.getMetadata
  • پیکربندی پایگاه داده: datastore.databases.update
  • حذف پایگاه داده: datastore.databases.delete
  • همسانه‌سازی پایگاه داده: datastore.databases.clone

ایجاد پایگاه داده

برای ایجاد پایگاه داده Cloud Firestore، از یکی از روش‌های زیر استفاده کنید:

کنسول Firebase
  1. در کنسول Firebase، به صفحه Firestore Database بروید.

    رفتن به Firestore Database

  2. روی افزودن پایگاه داده کلیک کنید.
  3. Enterprise edition را انتخاب کنید. روی بعدی کلیک کنید.
  4. Firestore در حالت بومی را انتخاب کنید.
  5. «شناسه پایگاه داده» را وارد کنید.
  6. مکانی برای پایگاه داده‌تان انتخاب کنید. روی بعدی کلیک کنید.
  7. انتخاب کنید که به‌روزرسانی‌های هم‌زمان فعال یا غیرفعال شود.

    «به‌روزرسانی‌های هم‌زمان» به پایگاه داده شما امکان می‌دهد از onSnapshot شنونده پشتیبانی کند. این ویژگی به‌طور پیش‌فرض برای پایگاه‌های داده Enterprise در حالت «بومی» فعال است.

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

    حالت آزمایشی
    برای شروع کار با کتابخانه‌های مشتری وب و تلفن همراه خوب است، اما به هرکسی اجازه می‌دهد داده‌هایتان را بخواند و بازنویسی کند. پس‌از آزمایش، حتماً بخش ایمن کردن داده‌ها را مرور کنید.
    حالت تولید
    همه خواندن‌ها و نوشتن‌ها را از کلاینت‌های وب و تلفن همراه رد می‌کند. سرورهای برنامه اصالت‌سنجی‌شده شما (Node.js،‏ Python،‏ Java) همچنان می‌توانند به پایگاه داده شما دسترسی داشته باشند
  9. روی ایجاد کردن کلیک کنید.
gcloud CLI

از فرمان gcloud firestore databases create استفاده کنید:.

gcloud firestore databases create \
--database=DATABASE_ID \
--location=LOCATION \
--edition=enterprise \
--enable-firestore-data-access \
--enable-realtime-updates

موارد زیر را جایگزین کنید:

شناسه پایگاه داده

شناسه‌های پایگاه داده معتبر شامل شناسه‌هایی است که با موارد زیر مطابقت داشته باشد:

  • فقط شامل حروف، اعداد، و نویسه‌های خط تیره (-) باشد.
  • حروف باید کوچک باشند.
  • نویسه اول باید حرف باشد.
  • نویسه آخر باید حرف یا عدد باشد.
  • حداقل ۴ نویسه داشته باشد.
  • حداکثر ۶۳ نویسه داشته باشد.
  • نباید UUID باشد یا شبیه UUID باشد. برای مثال، از شناسه‌ای مانند f47ac10b-58cc-0372-8567-0e02b2c3d479 استفاده نکنید.

اگر پایگاه داده‌ای را حذف کنید، تا ۵ دقیقه نمی‌توانید بلافاصله از شناسه پایگاه داده دوباره استفاده کنید.

حذف محافظت

برای جلوگیری از حذف تصادفی پایگاه داده، از محافظت دربرابر حذف استفاده کنید. محافظت دربرابر حذف به این صورت عمل می‌کند:

  • تا زمانی‌که محافظت دربرابر حذف را غیرفعال نکنید، نمی‌توانید پایگاه داده‌ای را که محافظت دربرابر حذف برای آن فعال است حذف کنید.
  • محافظت دربرابر حذف به‌طور پیش‌فرض غیرفعال است.
  • می‌توانید هنگام ایجاد پایگاه داده، محافظت دربرابر حذف را فعال کنید یا می‌توانید پیکربندی پایگاه داده را به‌روز کنید تا محافظت دربرابر حذف را فعال کنید.

فهرست کردن پایگاه‌های داده

از یکی از روش‌های زیر برای فهرست کردن پایگاه‌های داده‌تان استفاده کنید:

کنسول Firebase
  1. در کنسول Firebase، به صفحه Firestore Database بروید.

    رفتن به Firestore Database

  2. روی Cloud Firestore کلیک کنید تا همه پایگاه‌های داده پروژه را مشاهده کنید.
gcloud CLI

از فرمان gcloud firestore databases list برای فهرست کردن همه پایگاه‌های داده در پروژه‌تان استفاده کنید.

gcloud firestore databases list

مشاهده جزئیات پایگاه داده

برای مشاهده جزئیات مربوط به یک پایگاه داده، از یکی از روش‌های زیر استفاده کنید:

کنسول Firebase
  1. در کنسول Firebase، به صفحه Firestore Database بروید.

    رفتن به Firestore Database

  2. پایگاه داده‌ای را از فهرست پایگاه‌های داده انتخاب کنید.
gcloud CLI

از فرمان gcloud firestore databases describe استفاده کنید:

gcloud firestore databases describe --database=DATABASE_ID

‫DATABASE_ID را با شناسه پایگاه داده جایگزین کنید.

به‌روزرسانی پیکربندی پایگاه داده

برای به‌روزرسانی تنظیمات پیکربندی پایگاه داده، از فرمان gcloud firestore databases update استفاده کنید.

از این فرمان برای تغییر، فعال کردن، یا غیرفعال کردن محافظت دربرابر حذف استفاده کنید.

به‌روزرسانی تنظیم محافظت دربرابر حذف

برای فعال کردن محافظت دربرابر حذف در پایگاه داده، از فرمان gcloud firestore databases update با پرچم --delete-protection استفاده کنید. برای مثال:

gcloud CLI
gcloud firestore databases update --database=DATABASE_ID --delete-protection

‫DATABASE_ID را با شناسه پایگاه داده جایگزین کنید.

برای غیرفعال کردن محافظت دربرابر حذف در پایگاه داده، از فرمان gcloud firestore databases update با پرچم --no-delete-protection استفاده کنید. برای مثال:

gcloud CLI
gcloud firestore databases update --database=DATABASE_ID --no-delete-protection

‫DATABASE_ID را با شناسه پایگاه داده جایگزین کنید.

حذف پایگاه داده

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

اگر تنظیم محافظت از حذف برای پایگاه داده فعال باشد، باید ابتدا محافظت از حذف را غیرفعال کنید.

کنسول Firebase
  1. در کنسول Firebase، به صفحه Firestore Database بروید.

    رفتن به Firestore Database

  2. پایگاه داده‌ای را که می‌خواهید حذف شود انتخاب کنید.
  3. روی مشاهده موارد بیشتر کلیک کنید.
  4. برای حذف پایگاه داده، روی حذف کلیک کنید.
gcloud CLI

از فرمان `gcloud firestore databases delete` استفاده کنید.

gcloud firestore databases delete --database=DATABASE_ID

DATABASE_ID را با شناسه پایگاه داده‌ای که می‌خواهید حذف شود جایگزین کنید.

همسانه‌سازی پایگاه داده

می‌توانید پایگاه داده موجود را در مُهر زمان انتخابی در پایگاه داده جدیدی شبیه‌سازی کنید:

  • پایگاه داده کلون‌شده پایگاه داده جدیدی است که در همان مکان پایگاه داده منبع ایجاد خواهد شد.

    برای ایجاد کلون، Cloud Firestore از داده‌های بازیابی نقطه‌زمانی (PITR) پایگاه داده منبع استفاده می‌کند. پایگاه داده کلون‌شده شامل همه داده‌ها و نمایه‌ها است.

  • به‌طور پیش‌فرض، پایگاه داده کلون‌شده به همان روش پایگاه داده منبع، بااستفاده از رمزگذاری پیش‌فرض Google یا رمزگذاری CMEK، رمزگذاری خواهد شد. می‌توانید نوع رمزگذاری دیگری را مشخص کنید یا از کلید دیگری برای رمزگذاری CMEK استفاده کنید.

  • مُهر زمان دارای دانه‌بندی یک دقیقه‌ای است و نقطه‌ای از زمان را در گذشته مشخص می‌کند، در دوره‌ای که توسط پنجره PITR تعریف شده است:

    • اگر PITR برای پایگاه داده شما فعال باشد، می‌توانید هر دقیقه‌ای را در ۷ روز گذشته انتخاب کنید (یا کمتر، اگر PITR کمتر از ۷ روز پیش فعال شده باشد).
    • اگر «بازیابی نقطه‌زمانی» فعال نباشد، می‌توانید هر دقیقه‌ای را در ساعت گذشته انتخاب کنید.
    • می‌توانید اولین مُهر زمان قابل‌انتخاب را در شرح پایگاه داده‌تان بررسی کنید.

;کنسول Google Cloud

  1. در کنسول Google Cloud، به صفحه پایگاه‌های داده بروید.

    رفتن به پایگاه‌های داده

  2. روی مشاهده موارد بیشتر در ردیف جدول مربوط به پایگاه داده‌ای که می‌خواهید همانندسازی کنید کلیک کنید. روی کلون کردن کلیک کنید. کادر گفتگوی ایجاد کلون ظاهر می‌شود.

  3. در کادر گفتگوی ایجاد کلون، پارامترهای کلون کردن پایگاه داده را ارائه دهید:

    1. در فیلد اختصاص شناسه به کلون، شناسه پایگاه داده برای پایگاه داده کلون‌شده جدید. این شناسه پایگاه داده نباید با پایگاه داده موجودی مرتبط باشد.

    2. در فیلد کلون کردن از، نقطه‌ای را در زمان برای استفاده در کلون کردن انتخاب کنید. زمان انتخاب‌شده با مُهر زمان PITR، در سطح دقیقه، مطابقت دارد.

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

gcloud

برای شبیه‌سازی پایگاه داده، از فرمان gcloud firestore databases clone استفاده کنید:

gcloud firestore databases clone \
--source-database='SOURCE_DATABASE' \
--snapshot-time='PITR_TIMESTAMP' \
--destination-database='DESTINATION_DATABASE_ID'

موارد زیر را جایگزین کنید:

  • ‫SOURCE_DATABASE: نام پایگاه داده موجودی که می‌خواهید کلون کنید. نام از قالب projects/PROJECT_ID/databases/SOURCE_DATABASE_ID استفاده می‌کند.

  • PITR_TIMESTAMP: مُهر زمان «بازیابی نقطه‌زمانی» در قالب RFC 3339، با جزئیات دقیقه‌ای. برای مثال: 2025-06-01T10:20:00.00Z یا 2025-06-01T10:30:00.00-07:00.

  • DESTINATION_DATABASE_ID: شناسه پایگاه داده برای پایگاه داده کلون‌شده جدید. این شناسه پایگاه داده نباید با پایگاه داده موجودی مرتبط باشد.

مثال:

gcloud firestore databases clone \
--source-database='projects/example-project/databases/example-source-db' \
--snapshot-time='2025-06-01T10:20:00.00Z' \
--destination-database='example-dest-db'

اگر می‌خواهید هنگام شبیه‌سازی پایگاه داده به برخی‌از برچسب‌ها متصل شوید، از فرمان قبلی با پرچم --tags استفاده کنید که فهرست اختیاری جفت‌های «کلید=مقدار» برچسب‌ها برای اتصال است.

مثال:

gcloud firestore databases clone \
--source-database='projects/example-project/databases/(default)' \
--snapshot-time='2025-06-01T10:20:00.00Z' \
--destination-database='example-dest-db' \
--tags=key1=value1,key2=value2

به‌طور پیش‌فرض، پایگاه داده کلون‌شده همان پیکربندی رمزگذاری پایگاه داده منبع را خواهد داشت. برای تغییر پیکربندی رمزگذاری، از آرگومان --encryption-type استفاده کنید:

  • (پیش‌فرض) use-source-encryption: از همان پیکربندی رمزگذاری پایگاه داده منبع استفاده کنید.
  • google-default-encryption: از رمزگذاری پیش‌فرض Google استفاده کنید.
  • ‫customer-managed-encryption: از رمزگذاری CMEK استفاده کنید. شناسه کلید را در آرگومان --kms-key-name مشخص کنید.

مثال زیر نحوه پیکربندی رمزگذاری CMEK را برای پایگاه داده شبیه‌سازی‌شده نشان می‌دهد:

gcloud firestore databases clone \
--source-database='projects/example-project/databases/example-source-db' \
--snapshot-time='2025-06-01T10:20:00.00Z' \
--destination-database='example-dest-db' \
--encryption-type='customer-managed-encryption' \
--kms-key-name='projects/example-project/locations/us-central1/keyRings/example-key-ring/cryptoKeys/example-key'

واسط خط فرمان Firebase

برای شبیه‌سازی پایگاه داده، از فرمان firebase firestore:databases:clone استفاده کنید:

firebase firestore:databases:clone \
'SOURCE_DATABASE' \
'DESTINATION_DATABASE' \
--snapshot-time 'PITR_TIMESTAMP' \

موارد زیر را جایگزین کنید:

  • ‫SOURCE_DATABASE: نام پایگاه داده موجودی که می‌خواهید کلون کنید. نام از قالب projects/PROJECT_ID/databases/SOURCE_DATABASE_ID استفاده می‌کند.

  • DESTINATION_DATABASE: نام پایگاه داده برای پایگاه داده کلون‌شده جدید. نام از قالب projects/PROJECT_ID/databases/DESTINATION_DATABASE_ID استفاده می‌کند. این نام پایگاه داده نباید با پایگاه داده موجودی مرتبط باشد.

  • PITR_TIMESTAMP: مُهر زمان «بازیابی نقطه‌زمانی» در قالب RFC 3339، با جزئیات دقیقه‌ای. برای مثال: 2025-06-01T10:20:00.00Z یا 2025-06-01T10:30:00.00-07:00. اگر مشخص نشده باشد، عکس آنی انتخاب‌شده زمان فعلی خواهد بود که به دقیقه گرد شده است.

به‌طور پیش‌فرض، پایگاه داده کلون‌شده همان پیکربندی رمزگذاری پایگاه داده منبع را خواهد داشت. برای تغییر پیکربندی رمزگذاری، از آرگومان --encryption-type استفاده کنید:

  • (پیش‌فرض) USE_SOURCE_ENCRYPTION: از همان پیکربندی رمزگذاری پایگاه داده منبع استفاده کنید.
  • GOOGLE_DEFAULT_ENCRYPTION: از رمزگذاری پیش‌فرض Google استفاده کنید.
  • ‫CUSTOMER_MANAGED_ENCRYPTION: از رمزگذاری CMEK استفاده کنید. شناسه کلید را در آرگومان --kms-key-name مشخص کنید.

پیکربندی اجازه‌های دسترسی برای هر پایگاه داده

می‌توانید از شرایط مدیریت هویت و دسترسی برای پیکربندی اجازه‌های دسترسی در سطح هر پایگاه داده استفاده کنید. مثال‌های زیر از Google Cloud CLI برای اختصاص دادن دسترسی شرطی برای یک یا چند پایگاه داده استفاده می‌کنند. همچنین می‌توانید شرایط IAM را در کنسول Google Cloud تعریف کنید.

مشاهده خط‌مشی‌های IAM موجود

gcloud projects get-iam-policy PROJECT_ID

PROJECT_ID را روی شناسه پروژه‌تان تنظیم کنید.

اعطای دسترسی به پایگاه داده

gcloud projects add-iam-policy-binding PROJECT_ID \
--member='user:EMAIL' \
--role='roles/datastore.user' \
--condition='expression=resource.name=="projects/PROJECT_ID/databases/DATABASE_ID",title=TITLE,description=DESCRIPTION'

موارد زیر را تنظیم کنید:

  • PROJECT_ID: شناسه پروژه شما
  • EMAIL: نشانی ایمیلی که نشان‌دهنده حساب خاصی است. برای مثال، alice@example.com.
  • ‫DATABASE_ID: شناسه پایگاه داده.
  • ‫TITLE: عنوان اختیاری برای عبارت.
  • ‫DESCRIPTION: شرح اختیاری عبارت.

اعطای دسترسی به همه به‌جز یک پایگاه داده

gcloud projects add-iam-policy-binding PROJECT_ID \
--member='user:EMAIL' \
--role='roles/datastore.user' \
--condition='expression=resource.name!="projects/PROJECT_ID/databases/DATABASE_ID",title=TITLE,description=DESCRIPTION'

موارد زیر را تنظیم کنید:

  • PROJECT_ID: شناسه پروژه شما
  • EMAIL: نشانی ایمیلی که نشان‌دهنده حساب خاصی است. برای مثال، alice@example.com.
  • ‫DATABASE_ID: شناسه پایگاه داده.
  • ‫TITLE: عنوان اختیاری برای عبارت.
  • ‫DESCRIPTION: شرح اختیاری عبارت.

برداشتن خط‌مشی‌ها برای عضو و نقش مشخص‌شده

gcloud projects remove-iam-policy-binding PROJECT_ID \
--member='user:EMAIL' \
--role='roles/datastore.user' --all

موارد زیر را تنظیم کنید:

  • PROJECT_ID: شناسه پروژه شما
  • EMAIL: نشانی ایمیلی که نشان‌دهنده حساب خاصی است. برای مثال، alice@example.com.

محدودیت‌ها

می‌توانید حداکثر ۱۰۰ پایگاه داده در هر پروژه داشته باشید. برای درخواست افزایش این حد، می‌توانید با پشتیبانی تماس بگیرید.

حالا چه می‌شود