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

فقط مربوط به نسخه Cloud Firestore Enterprise است.

این صفحه نحوه ایجاد، به‌روزرسانی و حذف Cloud Firestore با پایگاه‌های داده سازگار با MongoDB را شرح می‌دهد. می‌توانید چندین پایگاه داده 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 با پایگاه داده سازگار با MongoDB، از یکی از روش‌های زیر استفاده کنید:

کنسول Firebase
  1. در کنسول Firebase ، به صفحه پایگاه داده فایراستور بروید.

    به پایگاه داده فایراستور بروید

  2. روی ایجاد پایگاه داده کلیک کنید.
  3. نسخه Enterprise را انتخاب کنید. روی Next کلیک کنید.
  4. شناسه پایگاه داده را وارد کنید.
  5. مکانی را برای پایگاه داده خود انتخاب کنید.
  6. پایگاه داده خود را در جایی که یک حالت را انتخاب می‌کنید، پیکربندی کنید.
  7. روی ایجاد کلیک کنید.
رابط خط فرمان فایربیس
firebase firestore:databases:create --edition EDITION DATABASE_ID \
--location=LOCATION
رابط خط فرمان جی‌کلاود

از دستور gcloud firestore databases create استفاده کنید و --edition=enterprise تنظیم کنید.

gcloud firestore databases create \
--database=DATABASE_ID \
--location=LOCATION \
--edition=enterprise

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

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

gcloud firestore databases create \
--database=DATABASE_ID \
--location=LOCATION \
--edition=enterprise \
--delete-protection

برای افزودن برچسب‌ها به پایگاه داده، از پرچم --tags استفاده کنید. برای مثال:

  • --tags=123/environment=production,123/costCenter=marketing
  • --tags=tagKeys/333=tagValues/444
ترافرم

از منبع google_firestore_database استفاده کنید و database_edition روی ENTERPRISE تنظیم کنید.

resource "google_firestore_database" "database" {
  name             = "DATABASE_ID"
  location_id      = "LOCATION"
  type             = "FIRESTORE_NATIVE"
  database_edition = "ENTERPRISE"

  // Optional
  delete_protection_state = "DELETE_PROTECTION_STATE"
}

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

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

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

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

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

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

حذف محافظت

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

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

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

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

کنسول Firebase
  1. در کنسول Firebase ، به صفحه پایگاه داده فایراستور بروید.

    به پایگاه داده فایراستور بروید

  2. برای مشاهده تمام پایگاه‌های داده برای پروژه، روی Cloud Firestore کلیک کنید.
رابط خط فرمان جی‌کلاود

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

gcloud firestore databases list

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

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

کنسول Firebase
  1. در کنسول Firebase ، به صفحه پایگاه داده فایراستور بروید.

    به پایگاه داده فایراستور بروید

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

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

gcloud firestore databases describe --database=DATABASE_ID

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

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

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

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

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

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

رابط خط فرمان جی‌کلاود
gcloud firestore databases update --database=DATABASE_ID --delete-protection

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

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

رابط خط فرمان جی‌کلاود
gcloud firestore databases update --database=DATABASE_ID --no-delete-protection

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

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

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

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

کنسول Firebase
  1. در کنسول Firebase ، به صفحه پایگاه داده فایراستور بروید.

    به پایگاه داده فایراستور بروید

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

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

gcloud firestore databases delete --database=DATABASE_ID

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

کلون کردن یک پایگاه داده

شما می‌توانید یک پایگاه داده موجود را در یک زمان مشخص در یک پایگاه داده جدید کلون کنید:

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

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

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

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

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

کنسول

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

    به پایگاه‌های داده بروید

  2. برای مشاهده اطلاعات بیشتر در ردیف جدول مربوط به پایگاه داده‌ای که می‌خواهید کلون کنید، روی کلیک کنید. روی Clone کلیک کنید. پنجره‌ی Create a clone ظاهر می‌شود.

  3. در پنجره‌ی «ایجاد یک کلون» ، پارامترهایی را برای کلون کردن پایگاه داده ارائه دهید:

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

    2. در فیلد Clone from ، یک نقطه زمانی را برای استفاده جهت کلونینگ انتخاب کنید. زمان انتخاب شده مربوط به یک مهر زمانی PITR، به صورت دقیق و جزئی است.

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

جی‌کلاود

برای کلون کردن یک پایگاه داده از دستور gcloud alpha firestore databases clone استفاده کنید:

gcloud alpha 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 : یک مهر زمانی PITR در قالب RFC 3339 ، به صورت جزئی و دقیق. برای مثال: 2025-06-01T10:20:00.00Z یا 2025-06-01T10:30:00.00-07:00 .

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

مثال:

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

پیکربندی رمزگذاری پایگاه داده کلون شده را تغییر دهید

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

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

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

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

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

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

مشاهده سیاست‌های موجود 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 .

محدودیت‌ها

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

قدم بعدی چیست؟