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

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

پایگاه داده (default)

اگر پایگاه داده را مشخص نکنید، کتابخانه های سرویس گیرنده Cloud Firestore و Google Cloud CLI به طور پیش فرض به پایگاه داده (default) متصل می شوند.

نقش های مورد نیاز

برای ایجاد و مدیریت پایگاه های داده، به نقش Owner یا Datastore Owner Identity and Access Management نیاز دارید. این نقش ها مجوزهای لازم را می دهند.

مجوزهای مورد نیاز

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

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

یک پایگاه داده ایجاد کنید

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

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

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

  2. اگر این اولین پایگاه داده شما است، روی افزودن پایگاه داده کلیک کنید.
  3. در غیر این صورت، روی (پیش‌فرض) و سپس افزودن پایگاه داده کلیک کنید.
  4. پایگاه داده خود را پیکربندی کنید شناسه پایگاه داده را وارد کنید. یک مکان را انتخاب کنید. روی ایجاد پایگاه داده کلیک کنید.
gcloud

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

gcloud firestore databases create \
--database=DATABASE_ID \
--location=LOCATION \
--type=DATABASE_TYPE \
[--delete-protection]

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

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

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

  • --tags=123/environment=production,123/costCenter=marketing
  • --tags=tagKeys/333=tagValues/444
Firebase CLI
firebase firestore:databases:create DATABASE_ID \
--location=LOCATION \
[--delete-protection DELETE_PROTECTION_ENABLEMENT]

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

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

Terraform
resource "google_firestore_database" "database" {
  project     = "project-id"
  name        = DATABASE_ID
  location_id = LOCATION
  type        = DATABASE_TYPE

  // Optional
  delete_protection_state = DELETE_PROTECTION_STATE
}

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

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

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

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

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

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

حفاظت را حذف کنید

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

Cloud Firestore Security Rules برای پایگاه داده خود تنظیم کنید

از Firebase CLI برای استقرار Cloud Firestore Security Rules در هر یک از پایگاه های داده خود استفاده کنید. به راهنمای مدیریت و استقرار Cloud Firestore Security Rules مراجعه کنید.

دسترسی به یک پایگاه داده با نام با کتابخانه مشتری

یک پایگاه داده با نام شامل هر پایگاه داده ای است که نامی ندارد (default) . به طور پیش‌فرض، Firebase SDK و Google API Client Libraries در یک پروژه به پایگاه داده (default) Cloud Firestore متصل می‌شوند. برای ایجاد یک کلاینت متصل به یک پایگاه داده با نام، شناسه پایگاه داده را هنگام نمونه سازی مشتری تنظیم کنید.

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

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

کنسول

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

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

gcloud

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

gcloud firestore databases list
Firebase CLI

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

firebase firestore:databases:list

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

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

gcloud

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

gcloud firestore databases describe --database=DATABASE_ID
Firebase CLI

از دستور firebase firestore:databases:get استفاده کنید:

firebase firestore:databases:get DATABASE_ID

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

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

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

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

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

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

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

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

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

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

دیتابیس را حذف کنید

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

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

اگر پایگاه داده حاوی داده های جستجوی App Engine یا موجودیت های حباب باشد، ابتدا باید آن داده ها را حذف کنید.

حذف یک پایگاه داده به طور خودکار هیچ عامل Eventarc را برای آن پایگاه داده حذف نمی کند. ماشه تحویل رویدادها را متوقف می کند اما تا زمانی که ماشه را حذف نکنید به وجود خود ادامه می دهد.

حذف پایگاه داده هزینه ای برای عملیات حذف ندارد.

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

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

  2. در تب Data، در بالای نمای جدول داده برای پایگاه داده، روی کلیک کنید، سپس Delete database را انتخاب کنید.
  3. برای حذف پایگاه داده دستورالعمل ها را دنبال کنید.
gcloud

از دستور «حذف پایگاه‌داده‌های firestore gcloud» استفاده کنید.

gcloud firestore databases delete --database=DATABASE_ID

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

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

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

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

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

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

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

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

کنسول

کنسول Firebase از شبیه سازی پایگاه داده پشتیبانی نمی کند. می‌توانید از دستورالعمل‌های Google Cloud CLI برای شبیه‌سازی پایگاه‌های داده استفاده کنید.

gcloud

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

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

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

  • 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 : از رمزگذاری پیش فرض Google استفاده کنید.
  • 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 را در کنسول 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 : یک آدرس ایمیل که نشان دهنده یک حساب Google خاص است. به عنوان مثال، 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 : یک آدرس ایمیل که نشان دهنده یک حساب Google خاص است. به عنوان مثال، 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 : یک آدرس ایمیل که نشان دهنده یک حساب Google خاص است. به عنوان مثال، alice@example.com .

مانیتورینگ ابری

معیارهای Cloud Firestore تحت دو منبع نظارت شده گزارش می شوند.

می‌توانید با مراجعه به firestore.googleapis.com/Database ، معیارهای انبوه را در سطح پایگاه داده بررسی کنید. معیارهای گزارش شده تحت firestore_instance در سطح پروژه جمع می شوند.

محدودیت ها

  • شما می توانید حداکثر 100 پایگاه داده در هر پروژه داشته باشید. برای درخواست افزایش تا این حد می توانید با پشتیبانی تماس بگیرید .
  • اگر پایگاه داده (default) خود حاوی داده‌های جستجوی GAE باشد، نمی‌توانید آن را حذف کنید. از index delete api برای حذف داده های جستجوی GAE استفاده کنید. اگر اخیراً داده های جستجوی GAE را حذف کرده اید، ممکن است قبل از اینکه بتوانید پایگاه داده را حذف کنید یک دوره انتظار وجود دارد.
  • اگر پایگاه داده (default) خود حاوی موجودیت‌های لکه‌ای باشد، نمی‌توانید آن را حذف کنید. از Blobstore delete api برای حذف داده های Blobstore استفاده کنید. می‌توانید با اجرای عبارت GQL زیر در کنسول Google Cloud بررسی کنید که آیا پایگاه داده (default) شما دارای داده‌های Blobstore است: SELECT * FROM __BlobInfo__ .
  • تا 5 دقیقه پس از حذف نمی‌توانید از شناسه پایگاه داده استفاده مجدد کنید.
  • Cloud Function v1 از پایگاه داده های Firestore Named پشتیبانی نمی کند. از Cloud Firestore Triggers (نسل دوم) برای پیکربندی رویدادها برای پایگاه‌های داده نام‌گذاری شده استفاده کنید.
  • فعال‌کننده‌های تابع Firestore v1 و راه‌اندازهای رویداد Firestore ممکن است پس از حذف پایگاه داده از کار بیفتند، حتی اگر پایگاه داده جدیدی با همین نام ایجاد شود.

بعدش چی