شروع به کار با Firebase Security Rules

Firebase Security Rules محافظت قوی و کاملاً قابل‌سفارشی‌سازی برای داده‌هایتان در Cloud Firestore، Realtime Database، و Cloud Storage ارائه می‌دهد. با دنبال کردن مراحل این راهنما، به‌راحتی می‌توانید کار با Security Rules را شروع کنید، داده‌هایتان را ایمن کنید، و از برنامه‌تان دربرابر کاربران مخرب محافظت کنید.

برای کمک هوش مصنوعی، پیام‌واره زیر را در عامل کدنویسی هوش مصنوعی خود (مانند Gemini در Android Studio،‏ Antigravity،‏ Claude Code،‏ Codex، و Cursor) کپی کنید. می‌توانید پیام‌واره را سفارشی‌سازی کنید و با عاملتان تکرار کنید. برای اطلاعات دقیق نصب، به مهارت‌های عامل Firebase مراجعه کنید.

Help me use Firebase in my app.
1. Make sure that **Firebase agent skills** are installed and updated. For Claude Code, Codex, or Cursor agents, help me install the Firebase plugin. For other agents, run `npx skills add firebase/agent-skills`. Always try to use **Firebase agent skills** for Firebase-related tasks.
2. Help me write, validate, and deploy Firebase Security Rules to protect my app's Cloud Storage data.

زبان Firebase Security Rules را درک کند

قبل‌از شروع به نوشتن قوانین، بهتر است کمی وقت بگذارید و زبان Firebase Security Rules خاص محصولات Firebase را که استفاده می‌کنید مرور کنید. Cloud Storage از یک اَبَرمجموعه از «زبان عبارت مشترک» (CEL) استفاده می‌کند که به عبارت‌های match و allow متکی است که شرطی را برای دسترسی در مسیری تعریف‌شده تعیین می‌کنند.

با یادگیری نحو اصلی زبان Firebase Security Rules شروع کنید.

راه‌اندازی Authentication

اگر قبلاً این کار را نکرده‌اید، Firebase Authentication را به برنامه‌تان اضافه کنید. Firebase Authentication از بسیاری از روش‌های اصالت‌سنجی رایج پشتیبانی می‌کند و با Firebase Security Rules ادغام می‌شود تا قابلیت‌های درستی‌سنجی جامعی ارائه دهد.

می‌توانید اطلاعات اصالت‌سنجی سفارشی و اضافی برای برنامه‌تان تنظیم کنید.

درباره Firebase Security Rules و Firebase Authentication بیشتر بدانید.

مشخص کردن ساختارهای داده‌ها و قوانین

داده‌هایتان را به‌دقت ساختاربندی کنید تا با الزامات امنیتی‌تان مطابقت داشته باشد.

نحوه ساختاردهی داده‌هایتان ممکن است بر نحوه ساختاردهی و اجرای قوانینتان تأثیر بگذارد. هنگام تعریف ساختارهای داده، پیامدهایی را که ممکن است بر ساختار Security Rules شما داشته باشند درنظر بگیرید.

برای مثال، در Cloud Storage، ممکن است بخواهید فیلدی را اضافه کنید که نقش خاصی را برای هر کاربر نشان می‌دهد. سپس، قوانین شما می‌توانند آن فیلد را بخوانند و از آن برای اعطای دسترسی مبتنی بر نقش استفاده کنند. همچنین می‌توانید پایگاه داده Cloud Firestore ایجاد کنید، معیارهای دسترسی را در اسناد Cloud Firestore ذخیره کنید، سپس از Cloud Storage Security Rules به آن اسناد دسترسی پیدا کنید.

هنگام تعریف معماری داده‌ها و قوانین، به یاد داشته باشید که قوانین بسته به محصول شما ممکن است به‌صورت آبشاری اعمال شوند یا نشوند. با Realtime Database، قوانین از بالا به پایین کار می‌کنند و قوانین سطحی‌تر قوانین عمیق‌تر را لغو می‌کنند. اگر قانونی اجازه‌های خواندن یا نوشتن را در مسیر خاصی اعطا کند، دسترسی به همه گره‌های فرزند زیر آن را نیز اعطا می‌کند. درمقابل، با Cloud Firestore و Cloud Storage، قوانین فقط در سطوح مشخصی از سلسله‌مراتب داده‌ها اعمال می‌شوند، و شما قوانین صریحی برای کنترل دسترسی به سطوح مختلف می‌نویسید.

دسترسی به قوانین

برای مشاهده Security Rules موجود، از Firebase CLI یا کنسول Firebase استفاده کنید. مطمئن شوید که قوانینتان را بااستفاده از همان روش، به‌طور مداوم، ویرایش می‌کنید تا از بازنویسی اشتباه به‌روزرسانی‌ها جلوگیری کنید. اگر مطمئن نیستید که قوانین تعریف‌شده محلی شما جدیدترین به‌روزرسانی‌ها را منعکس می‌کنند یا نه، کنسول Firebase همیشه جدیدترین نسخه مستقرشده Firebase Security Rules شما را نشان می‌دهد.

برای دسترسی به قوانین خود از کنسول Firebase، پروژه خود را انتخاب کنید، سپس در پانل پیمایش سمت چپ، روی فضای ذخیره‌سازی کلیک کنید. وقتی در پایگاه داده یا سطل فضای ذخیره‌سازی صحیح قرار گرفتید، روی Security Rules کلیک کنید.

برای دسترسی به قوانینتان از Firebase CLI، به فایل قوانین ذکرشده در فایل firebase.json بروید.

نوشتن قوانین پایه

همان‌طور که درحال توسعه برنامه‌تان هستید و Security Rules را درک می‌کنید، Security Rules را برای رسیدگی به چند مورد استفاده پایه، ازجمله موارد زیر، پیاده‌سازی کنید:

  • فقط مالک محتوا: دسترسی به محتوا را براساس کاربر محدود کنید.
  • دسترسی مختلط: دسترسی نوشتن را برای کاربر محدود کنید، اما دسترسی خواندن را برای عموم مجاز کنید.
  • دسترسی مبتنی بر مشخصه: دسترسی به گروه یا نوع کاربر را محدود کنید.

آزمایش کردن قوانین

اگر Firebase Security Rules را در کنسول Firebase راه‌اندازی می‌کنید، می‌توانید از Firebase Rules Playground برای اعتبارسنجی سریع رفتار استفاده کنید. بااین‌حال، توصیه می‌کنیم قبل‌از استقرار تغییرات در دسته هدف تولید، آزمایش‌های کامل‌تری با Local Emulator Suite انجام دهید.

پیاده‌سازی قوانین

از کنسول Firebase یا Firebase CLI برای استقرار قوانینتان در تولید استفاده کنید. مراحل ذکرشده در مدیریت و استقرار Firebase Security Rules را دنبال کنید.