Cloud Firestore के सुरक्षा नियमों का इस्तेमाल शुरू करना

Cloud Firestore Security Rules की मदद से, इन्फ़्रास्ट्रक्चर को मैनेज करने या सर्वर-साइड पर पुष्टि करने और ऑथराइज़ेशन कोड लिखने के बजाय, उपयोगकर्ताओं को बेहतरीन अनुभव देने पर फ़ोकस किया जा सकता है.

सुरक्षा के नियम, ऐक्सेस कंट्रोल और डेटा की पुष्टि करने की सुविधा देते हैं. ये नियम, आसान और समझने में आसान फ़ॉर्मैट में होते हैं. उपयोगकर्ता और भूमिका के आधार पर ऐक्सेस सिस्टम बनाने के लिए, आपको Firebase Authentication के साथ Cloud Firestore Security Rules का इस्तेमाल करना होगा. इससे आपके उपयोगकर्ताओं का डेटा सुरक्षित रहेगा.





एआई की मदद पाने के लिए, नीचे दिए गए प्रॉम्प्ट को अपने एआई कोडिंग एजेंट में कॉपी करें. जैसे, 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.

सुरक्षा नियमों का दूसरा वर्शन

मई 2019 से, Cloud Firestore के सुरक्षा नियमों का दूसरा वर्शन उपलब्ध है. नियमों के दूसरे वर्शन में, रिकर्सिव वाइल्डकार्ड {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 कंसोल, दोनों में ऐक्सेस किया जा सकता है.

नियमों के सिम्युलेटर की मदद से, पुष्टि किए गए और पुष्टि नहीं किए गए रीड, राइट, और मिटाने के अनुरोधों को सिम्युलेट किया जा सकता है. पुष्टि किए गए अनुरोध का सिम्युलेशन करने पर, अलग-अलग प्रोवाइडर से पुष्टि करने वाले टोकन बनाए और उनकी झलक देखी जा सकती है. सिम्युलेट किए गए अनुरोध, आपके एडिटर में मौजूद नियमों के सेट के हिसाब से काम करते हैं. ये अनुरोध, डिप्लॉय किए गए नियमों के सेट के हिसाब से काम नहीं करते.

Google Cloud Console में नियमों की जांच करना

Google Cloud Console में नियमों का सिम्युलेटर, स्टैंडर्ड और एंटरप्राइज़, दोनों वर्शन में नेटिव मोड में Firestore के लिए उपलब्ध है.

ज़रूरी अनुमतियां

Google Cloud Console में सुरक्षा नियमों को आज़माने के लिए, आपके पास यह IAM अनुमति होनी चाहिए:

  • firebaserules.rulesets.test

Google Cloud Console में डेटाबेस के अनुरोध का सिम्युलेशन करने के लिए:

  1. Google Cloud Console में, डेटाबेस पेज पर जाएं.
  2. उस डेटाबेस के आईडी पर क्लिक करें जिसकी आपको जांच करनी है.
  3. नेविगेशन मेन्यू में, सुरक्षा पर क्लिक करें.
  4. सिम्युलेटर टैब पर क्लिक करें.
  5. सिमुलेशन टाइप ड्रॉप-डाउन सूची में, ऑपरेशन का टाइप चुनें: get, create, update या delete.
  6. जगह फ़ील्ड में, उस दस्तावेज़ का पाथ डालें जिसकी आपको जांच करनी है. उदाहरण के लिए, users/user_123.
  7. (ज़रूरी नहीं) create और update अनुरोधों के लिए, Build document पर क्लिक करें, ताकि मॉक दस्तावेज़ के पेलोड को कॉन्फ़िगर किया जा सके.
  8. (ज़रूरी नहीं) पुष्टि किए गए अनुरोध का सिम्युलेशन करने के लिए, पुष्टि चालू करें. इसके बाद, पुष्टि करने वाली कोई सेवा चुनें. जैसे, google.com या Anonymous. साथ ही, टोकन पेलोड फ़ील्ड कॉन्फ़िगर करें.
  9. Run पर क्लिक करें.

इवैल्यूएशन पैनल में यह दिखता है कि अनुरोध को अनुमति दी गई है या नहीं. साथ ही, इसमें हर शर्त के लिए रिपोर्ट आइटम की ज़्यादा जानकारी और कोड एडिटर में लाइन-लेवल हाइलाइट दिखती हैं.

Firebase कंसोल में नियमों की जांच करना

Firebase कंसोल में नियमों की जांच करने के लिए, डेटाबेस और स्टोरेज > Firestore > नियम टैब पर जाएं. सिमुलेटर की सेटिंग खोलने के लिए, नियमों का प्लेग्राउंड पर क्लिक करें. इसके बाद, सिमुलेशन के विकल्प चुनें और चलाएं पर क्लिक करें.

नियमों को लागू करना

मोबाइल ऐप्लिकेशन से 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 में सुरक्षा नियमों को मैनेज और डिप्लॉय करने के लिए, आपके पास ये IAM अनुमतियां होनी चाहिए:

  • firebaserules.releases.create
  • firebaserules.releases.delete
  • firebaserules.releases.update
  • firebaserules.rulesets.create
  • firebaserules.rulesets.delete
  • firebaserules.rulesets.list
  • firebaserules.rulesets.test (नियम सिम्युलेटर का इस्तेमाल करने के लिए ज़रूरी है)

Google Cloud Console में नियमों को डिप्लॉय करने के लिए:

  1. Google Cloud Console में, डेटाबेस पेज पर जाएं.
  2. उस डेटाबेस के आईडी पर क्लिक करें जिसे आपको मैनेज करना है.
  3. नेविगेशन मेन्यू में, सुरक्षा पर क्लिक करें.
  4. Firestore के नियम टैब पर क्लिक करें.
  5. नियमों के एडिटर में जाकर, अपने नियम देखें. बदलाव करने के लिए, नया नियम सेट या नियम सेट क्लोन करें पर क्लिक करें. इसके बाद, नियमों में बदलाव करें.
  6. बदलावों को लागू करने के लिए, पब्लिश करें पर क्लिक करें.

टाइमलाइन में, पिछले नियम सेट भी देखे जा सकते हैं. साथ ही, उन्हें क्लोन या वापस पहले जैसा किया जा सकता है.

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 Security Rules, दोनों प्रॉडक्ट के लिए कर सकती हैं. ज़्यादा जानकारी के लिए, Cloud Storage के लिए गाइड देखें.

अगले चरण