בעזרת Cloud Firestore Security Rules, אתם יכולים להתמקד ביצירת חוויית משתמש מעולה בלי לנהל תשתית או לכתוב קוד אימות והרשאה בצד השרת.
כללי האבטחה מספקים בקרת גישה ואימות נתונים בפורמט פשוט אך מפורט. כדי ליצור מערכות גישה שמבוססות על משתמשים ועל תפקידים ושומרות על בטיחות הנתונים של המשתמשים, צריך להשתמש ב-Firebase Authentication עם Cloud Firestore Security Rules.
הנחיית AI לעזרה מבוססת-AI
כדי לקבל עזרה מ-AI, מעתיקים את ההנחיה שלמטה ומדביקים אותה בסוכן ה-AI לתכנות (כמו 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 Firestore data.
כללי אבטחה בגרסה 2
החל ממאי 2019, גרסה 2 של כללי האבטחה של Cloud Firestore זמינה. גרסה 2 של הכללים משנה את ההתנהגות של תווים כלליים לחיפוש רקורסיבי {name=**}. אם אתם מתכננים להשתמש בשאילתות של קבוצות אוספים, אתם צריכים להשתמש בגרסה 2. כדי להביע הסכמה לשימוש בגרסה 2, צריך להוסיף את rules_version = '2'; בתור השורה הראשונה בכללי האבטחה:
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
כללי כתיבה
אתם תכתבו ותנהלו Cloud Firestore Security Rules שמותאמים למודל הנתונים שתיצרו למסד הנתונים שמוגדר כברירת מחדל ולכל מסד נתונים נוסף בפרויקט.
כל Cloud Firestore Security Rules מורכבים מהצהרות match, שמזהות מסמכים במסד הנתונים, ומביטויי allow, ששולטים בגישה למסמכים האלה:
service cloud.firestore {
match /databases/{database}/documents {
match /<some_path>/ {
allow read, write: if <some_condition>;
}
}
}
כל בקשה למסד נתונים מספריית לקוח של Cloud Firestore לנייד או לאינטרנט נבדקת מול כללי האבטחה לפני קריאה או כתיבה של נתונים. אם הכללים מונעים גישה לאחד מנתיבי המסמכים שצוינו, הבקשה כולה נכשלת.
בהמשך מפורטות כמה דוגמאות לקבוצות כללים בסיסיות. הכללים האלה תקינים, אבל לא מומלץ להשתמש בהם באפליקציות בסביבת ייצור:
נדרש אימות
// Allow read/write access on all documents to any user signed in to the application
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if request.auth != null;
}
}
}
דחייה של הכול
// Deny read/write access to all users under any conditions
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if false;
}
}
}
הפעלת התאמה אישית של מודעות בכל הארצות/האזורים
// Allow read/write access to all users under any conditions
// Warning: **NEVER** use this rule set in production; it allows
// anyone to overwrite your entire database.
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if true;
}
}
}
הנתיב {document=**} שמופיע בדוגמאות שלמעלה תואם לכל מסמך במסד הנתונים כולו. במדריך מבנה של כללי אבטחה מוסבר איך להתאים נתיבי נתונים ספציפיים ולעבוד עם נתונים היררכיים.
הכללים בבדיקה
ב-Cloud Firestore יש סימולטור של כללים שמאפשר לבדוק את קבוצת הכללים. אפשר לגשת לסימולטור גם במסוף Google Cloud וגם במסוף Firebase.
סימולטור הכללים מאפשר לדמות פעולות קריאה, כתיבה ומחיקה מאומתות ולא מאומתות. כשמדמים בקשה מאומתת, אפשר ליצור אסימוני אימות מספקים שונים ולראות אותם בתצוגה מקדימה. בקשות סימולציה פועלות מול קבוצת הכללים בעורך, ולא מול קבוצת הכללים שנפרסה.
בדיקת כללים במסוף Google Cloud
סימולטור הכללים במסוף Google Cloud זמין ל-Firestore במצב Native במהדורות Standard ו-Enterprise.
ההרשאות הנדרשות
כדי לבדוק את כללי האבטחה במסוף Google Cloud, צריך את ההרשאה הבאה ב-IAM:
firebaserules.rulesets.test
כדי לדמות בקשה למסד נתונים במסוף Google Cloud:
- נכנסים לדף Databases במסוף Google Cloud.
- לוחצים על המזהה של מסד הנתונים שרוצים לבדוק.
- בתפריט הניווט, לוחצים על אבטחה.
- לוחצים על הכרטיסייה סימולטור.
- ברשימה הנפתחת Simulation type, בוחרים סוג פעולה: get, create, update או delete.
- בשדה מיקום, מזינים את נתיב המסמך שרוצים לבדוק (לדוגמה,
users/user_123). - (אופציונלי) בבקשות create ו-update, לוחצים על Build document כדי להגדיר את המטען הייעודי (payload) של המסמך המדומה.
- (אופציונלי) כדי לדמות בקשה מאומתת, מפעילים את האפשרות Authentication, בוחרים ספק אימות (כמו google.com או Anonymous) ומגדירים את שדות המטען הייעודי (payload) של האסימון.
- לוחצים על Run.
בחלונית ההערכה מוצג אם הבקשה אושרה או נדחתה, פריטי דוח מפורטים לכל תנאי שהוערך והדגשות ברמת השורה בעורך הקוד.
בדיקת כללים במסוף Firebase
כדי לבדוק כללים במסוף Firebase, עוברים אל Databases & Storage (מסדי נתונים ואחסון) > Firestore > הכרטיסייה Rules (כללים). לוחצים על ארגז החול של הכללים כדי לפתוח את הגדרות הסימולטור, בוחרים את אפשרויות הסימולציה ולוחצים על הפעלה.
פריסת כללים
כדי להתחיל להשתמש ב-Cloud Firestore מהאפליקציה לנייד, צריך לפרוס כללי אבטחה. אפשר לפרוס כללים במסוף Firebase, במסוף Google Cloud, באמצעות Firebase CLI או באמצעות ה-API לניהול REST של Cloud Firestore.
יכול להיות שיעבור עד דקה עד שהעדכונים ב-Cloud Firestore Security Rules ישפיעו על שאילתות ומאזינים חדשים. עם זאת, יכול להיות שיחלפו עד 10 דקות עד שהשינויים יתעדכנו באופן מלא וישפיעו על כל המאזינים הפעילים.
שימוש במסוף Firebase
כדי להגדיר ולפרוס את קבוצת הכללים הראשונה במסד הנתונים שמוגדר כברירת מחדל בפרויקט, עוברים אל Databases & Storage > Firestore > הכרטיסייה Rules במסוף Firebase.
אם יוצרים כמה מסדי נתונים לפרויקט, אפשר לפרוס את Cloud Firestore Security Rules לכל מסד נתונים. במסוף Firebase, משתמשים בבורר מסדי הנתונים כדי לעבור בין מסד הנתונים שמוגדר כברירת מחדל לבין מסדי נתונים נוספים.
כותבים את הכללים בעורך אונליין ולוחצים על פרסום.
שימוש במסוף Google Cloud
אתם יכולים לנהל ולפרוס את Cloud Firestore Security Rules ישירות במסוף Google Cloud. עורך הכללים זמין ל-Firestore במצב Native גם במהדורת Standard וגם במהדורת Enterprise.
ההרשאות הנדרשות
כדי לנהל ולפרוס כללי אבטחה במסוף Google Cloud, צריך את ההרשאות הבאות ב-IAM:
firebaserules.releases.createfirebaserules.releases.deletefirebaserules.releases.updatefirebaserules.rulesets.createfirebaserules.rulesets.deletefirebaserules.rulesets.list-
firebaserules.rulesets.test(נדרשת כדי להשתמש בסימולטור הכללים)
כדי לפרוס כללים במסוף Google Cloud:
- נכנסים לדף Databases במסוף Google Cloud.
- לוחצים על המזהה של מסד הנתונים שרוצים לנהל.
- בתפריט הניווט, לוחצים על אבטחה.
- לוחצים על הכרטיסייה Firestore Rules.
- בעורך הכללים, מעיינים בכללים. כדי לערוך, לוחצים על קבוצת כללים חדשה או על שכפול קבוצת כללים, ואז משנים את הכללים.
- לוחצים על Publish (פרסום) כדי לפרוס את השינויים.
אפשר גם לראות קבוצות כללים קודמות בציר הזמן, לשכפל או לשחזר אותן.
שימוש ב-Firebase CLI
אפשר גם לפרוס כללים באמצעות Firebase CLI. באמצעות ה-CLI, אתם יכולים לשמור את הכללים בניהול גרסאות עם קוד האפליקציה, ולפרוס את הכללים כחלק מתהליך הפריסה הקיים.
// Set up Firestore in your project directory, creates a .rules file
firebase init firestore
// Edit the generated .rules file to your desired security rules
// ...
// Deploy rules for all configured databases
firebase deploy --only firestore
שיפור האבטחה של Cloud Storage
האפליקציות שלכם ייהנו מהתכונות החזקות של מסד הנתונים של Cloud Firestore ומהתכונות של אחסון וניהול קבצים של Cloud Storage. השימוש במוצרים האלה ביחד גם מחזק את אבטחת האפליקציה, כי Cloud Firestore יכול לתעד דרישות הרשאה שניתן להשתמש בהן בכללי האבטחה של Firebase בשני המוצרים. מידע נוסף זמין במדריך של Cloud Storage.
השלבים הבאים
- איך מגדירים את המבנה של כללי האבטחה
- לכתוב תנאים לכללי אבטחה בהתאמה אישית.
- קוראים את ההפניה לכללי האבטחה.