Cloud Firestore Security Rules की मदद से, उपयोगकर्ताओं को बेहतरीन अनुभव देने पर फ़ोकस किया जा सकता है. इसके लिए, आपको इन्फ़्रास्ट्रक्चर को मैनेज करने या सर्वर-साइड पर पुष्टि करने और अनुमति देने वाला कोड लिखने की ज़रूरत नहीं पड़ती.
सुरक्षा के नियम, ऐक्सेस कंट्रोल और डेटा की पुष्टि करने की सुविधा देते हैं. ये नियम, आसान और समझने लायक फ़ॉर्मैट में होते हैं. उपयोगकर्ता और भूमिका के आधार पर ऐक्सेस सिस्टम बनाने के लिए, आपको Cloud Firestore Security Rules के साथ Firebase से पुष्टि करने की सुविधा का इस्तेमाल करना होगा. इससे आपके उपयोगकर्ताओं का डेटा सुरक्षित रहता है.
एआई असिस्टेंस के लिए एआई प्रॉम्प्ट
एआई असिस्टेंस पाने के लिए, यहां दिए गए प्रॉम्प्ट को अपने एआई कोडिंग एजेंट (जैसे, Android Studio में Gemini, 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 से, 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 console और Firebase console, दोनों में ऐक्सेस किया जा सकता है.
नियमों के सिम्युलेटर की मदद से, पुष्टि किए गए और पुष्टि नहीं किए गए डेटा को पढ़ने, लिखने, और मिटाने की प्रोसेस को सिम्युलेट किया जा सकता है. पुष्टि किए गए अनुरोध को सिम्युलेट करने पर, अलग-अलग प्रोवाइडर से पुष्टि करने वाले टोकन बनाए जा सकते हैं और उनकी झलक देखी जा सकती है. सिम्युलेट किए गए अनुरोध, आपके एडिटर में मौजूद नियमों के सेट के हिसाब से चलते हैं, न कि डिप्लॉय किए गए नियमों के सेट के हिसाब से.
Google Cloud Console में नियमों की जांच करना
Google Cloud कंसोल में नियमों का सिम्युलेटर, स्टैंडर्ड और एंटरप्राइज़, दोनों वर्शन में नेटिव मोड में Firestore के लिए उपलब्ध है.
ज़रूरी अनुमतियां
Google Cloud Console में सुरक्षा नियमों की जांच करने के लिए, आपके पास यह IAM अनुमति होनी चाहिए:
firebaserules.rulesets.test
Google Cloud Console में डेटाबेस के अनुरोध को सिम्युलेट करने के लिए:
- Google Cloud console में, डेटाबेस पेज पर जाएं.
- उस डेटाबेस के आईडी पर क्लिक करें जिसकी आपको जांच करनी है.
- नेविगेशन मेन्यू में, सुरक्षा पर क्लिक करें.
- सिम्युलेटर टैब पर क्लिक करें.
- सिम्युलेशन टाइप ड्रॉप-डाउन सूची में, ऑपरेशन टाइप चुनें: get, create, update या delete.
- जगह फ़ील्ड में, उस दस्तावेज़ का पाथ डालें जिसकी आपको जांच करनी है. उदाहरण के लिए,
users/user_123. - (ज़रूरी नहीं) बनाएं और अपडेट करें अनुरोधों के लिए, मॉक दस्तावेज़ पेलोड को कॉन्फ़िगर करने के लिए, दस्तावेज़ बनाएं पर क्लिक करें.
- (ज़रूरी नहीं) पुष्टि किए गए अनुरोध को सिम्युलेट करने के लिए, पुष्टि करें को चालू करें. इसके बाद, पुष्टि करने वाली सेवा देने वाली कंपनी (जैसे, google.com या Anonymous) को चुनें और टोकन पेलोड फ़ील्ड कॉन्फ़िगर करें.
- Run पर क्लिक करें.
इवैलुएशन पैनल में यह दिखता है कि अनुरोध को अनुमति दी गई है या नहीं. साथ ही, इसमें जांच की गई हर शर्त के लिए, ज़्यादा जानकारी वाली रिपोर्ट के आइटम और कोड एडिटर में लाइन-लेवल की हाइलाइट दिखती हैं.
Firebase कंसोल में नियमों की जांच करना
Firebase कंसोल में नियमों की जांच करने के लिए, डेटाबेस और स्टोरेज > Firestore > नियम टैब पर जाएं. सिम्युलेटर की सेटिंग खोलने के लिए, Rules Playground पर क्लिक करें. इसके बाद, सिम्युलेशन के विकल्प चुनें और फिर Run पर क्लिक करें.
नियमों को लागू करना
अपने मोबाइल ऐप्लिकेशन से Cloud Firestore का इस्तेमाल शुरू करने से पहले, आपको सुरक्षा के नियम लागू करने होंगे. Firebase कंसोल, Google Cloud Console, Firebase CLI या Cloud Firestore मैनेजमेंट REST API का इस्तेमाल करके, नियमों को डिप्लॉय किया जा सकता है.
Cloud Firestore Security Rules में किए गए अपडेट को नई क्वेरी और श्रोताओं पर लागू होने में एक मिनट लग सकता है. हालांकि, बदलावों को पूरी तरह से लागू होने और लाइव स्ट्रीम सुन रहे लोगों पर असर डालने में 10 मिनट लग सकते हैं.
Firebase कंसोल का इस्तेमाल करना
अपने प्रोजेक्ट के डिफ़ॉल्ट डेटाबेस के लिए, नियमों का पहला सेट सेट अप और डिप्लॉय करने के लिए, Firebase कंसोल में डेटाबेस और स्टोरेज > Firestore > नियम टैब पर जाएं.
अगर आपने अपने प्रोजेक्ट के लिए कई डेटाबेस बनाए हैं, तो हर डेटाबेस के लिए Cloud Firestore Security Rules को डिप्लॉय किया जा सकता है. Firebase कंसोल में, डिफ़ॉल्ट डेटाबेस और किसी अन्य डेटाबेस के बीच स्विच करने के लिए, डेटाबेस सिलेक्टर का इस्तेमाल करें.
ऑनलाइन एडिटर में अपने नियम लिखें. इसके बाद, पब्लिश करें पर क्लिक करें.
Google Cloud Console का इस्तेमाल करना
Cloud Firestore Security Rules को सीधे Google Cloud Console में जाकर मैनेज और डिप्लॉय किया जा सकता है. नियमों का एडिटर, Standard और Enterprise, दोनों वर्शन में नेटिव मोड में Firestore के लिए उपलब्ध है.
ज़रूरी अनुमतियां
Google Cloud console में सुरक्षा नियमों को मैनेज और डिप्लॉय करने के लिए, आपके पास ये आईएएम अनुमतियां होनी चाहिए:
firebaserules.releases.createfirebaserules.releases.deletefirebaserules.releases.updatefirebaserules.rulesets.createfirebaserules.rulesets.deletefirebaserules.rulesets.listfirebaserules.rulesets.test(नियमों के सिम्युलेटर का इस्तेमाल करने के लिए ज़रूरी है)
Google Cloud Console में नियम डिप्लॉय करने के लिए:
- Google Cloud console में, डेटाबेस पेज पर जाएं.
- उस डेटाबेस के आईडी पर क्लिक करें जिसे आपको मैनेज करना है.
- नेविगेशन मेन्यू में, सुरक्षा पर क्लिक करें.
- Firestore के नियम टैब पर क्लिक करें.
- नियम एडिटर में जाकर, अपने नियम देखें. बदलाव करने के लिए, नियमों का नया सेट या नियमों के सेट का क्लोन बनाएं पर क्लिक करें. इसके बाद, अपने नियमों में बदलाव करें.
- अपने बदलावों को लागू करने के लिए, पब्लिश करें पर क्लिक करें.
टाइमलाइन में, नियमों के पिछले सेट भी देखे जा सकते हैं. साथ ही, उन्हें क्लोन या पहले जैसा किया जा सकता है.
Firebase CLI का इस्तेमाल करना
Firebase 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 के लिए गाइड देखें.
अगले चरण
- सुरक्षा नियमों को स्ट्रक्चर करने का तरीका जानें.
- कस्टम सुरक्षा नियमों की शर्तें लिखें.
- सुरक्षा नियमों का रेफ़रंस पढ़ें.