एआई प्रॉम्प्ट: Firebase के सुरक्षा नियम लिखो

इस प्रॉम्प्ट से, आपके एआई असिस्टेंट को मदद मिल सकती है. जैसे, Gemini CLI, आपके ऐप्लिकेशन के लिए Firebase Security Rules जनरेट और बेहतर कर सकता है. इस प्रॉम्प्ट का इस्तेमाल, सामान्य इस्तेमाल के मामलों के लिए Rules का ड्राफ़्ट बनाने के लिए किया जा सकता है. जैसे, उपयोगकर्ता के हिसाब से ऐक्सेस देना, भूमिका के आधार पर अनुमतियां लागू करना, और डेटा की पुष्टि करना.

इस प्रॉम्प्ट का मकसद, इनके लिए Rules जनरेट करना है:

  • Cloud Firestore: अपने ऐप्लिकेशन के लॉजिक के आधार पर, कलेक्शन और दस्तावेज़ों को सुरक्षित रखें.
  • Cloud Storage for Firebase: सेव की गई फ़ाइलों को ऐक्सेस करने की अनुमतियों की पुष्टि करें.

इस प्रॉम्प्ट का इस्तेमाल करके, सुरक्षा से जुड़ी बेहतर नीतियां लागू की जा सकती हैं. हालांकि, आपको प्रोडक्शन में Rules को डिप्लॉय करने से पहले, उसकी अच्छी तरह से जांच करनी चाहिए. Rules को टेस्ट करने के बारे में ज़्यादा जानने के लिए, Firebase Security Rules का इस्तेमाल शुरू करना: नियमों को टेस्ट करना लेख पढ़ें.

ज़रूरी शर्तें

  • सुरक्षा के नियमों से जुड़े सबसे सही तरीकों के बारे में जानें.
  • Firebase Security Rules के लिए यूनिट टेस्ट चलाने और Firebase Local Emulator Suite का इस्तेमाल करने के लिए, Node.js इंस्टॉल करें और Firebase CLI का इस्तेमाल करें. पूरी जानकारी के लिए, Local Emulator Suite को इंस्टॉल, कॉन्फ़िगर, और इंटिग्रेट करना लेख पढ़ें.
  • सुझाया गया: अगर आपने पहले से ऐसा नहीं किया है, तो Gemini CLI इंस्टॉल करें. यहां दिए गए निर्देशों में, Gemini CLI जनरेट करने के लिए Rules एक्सटेंशन को इंस्टॉल करने और इस्तेमाल करने का तरीका बताया गया है. अगर आपको किसी दूसरे एआई असिस्टेंट का इस्तेमाल करना है, तो रिपॉज़िटरी से प्रॉम्प्ट को कॉपी करके, अपने चुने हुए एआई असिस्टेंट में चिपकाएं.
  • यह Gemini CLI एक्सटेंशन, Firebase MCP सर्वर का इस्तेमाल करके, जनरेट किए गए Firebase Security Rules की पुष्टि करता है. एमसीपी सर्वर का इस्तेमाल, Rules को आसानी से टेस्ट और डिप्लॉय करने के लिए भी किया जा सकता है. Firebase Security Rules जनरेट करने के लिए एक्सटेंशन का इस्तेमाल करने से पहले, Firebase MCP सर्वर इंस्टॉल करें.

सीमाएं

हम इस सुविधा को बेहतर बनाने के लिए लगातार काम कर रहे हैं. इसलिए, इस सूची में दी गई सीमाओं में बदलाव हो सकता है. अपडेट के लिए, समय-समय पर यहां देखते रहें.

  • Firebase में Gemini, Firebase Security Rules जनरेट नहीं कर सकता. किसी अन्य एआई असिस्टेंट का इस्तेमाल करें. जैसे, Gemini CLI.
  • इस प्रॉम्प्ट को Cloud Firestore और Cloud Storage for Firebase के लिए Firebase Security Rules जनरेट करने के लिए डिज़ाइन किया गया है. यह फ़िलहाल Firebase Realtime Database के लिए Rules जनरेट नहीं कर सकता.
  • सर्वर या अन्य बैकएंड एनवायरमेंट से अपने डेटाबेस या बकेट को ऐक्सेस करते समय, Firebase Security Rules को कॉल नहीं किया जाता. जैसे, Firebase Admin SDK का इस्तेमाल करते समय. अगर Admin SDK का इस्तेमाल किया जा रहा है, तो आपको अपने बैकएंड कोड में अनुमति और डेटा की पुष्टि को मैनेज करना होगा.

प्रॉम्प्ट का इस्तेमाल करना

  1. अपने नियमों और टेस्ट को जनरेट करने के लिए, Firebase Security Rules के लिए एक्सपेरिमेंटल Gemini CLI एक्सटेंशन का इस्तेमाल करें.

    यह एक्सटेंशन, आपके सोर्स कोड का विश्लेषण करता है. इससे Cloud Firestore और Cloud Storage के लिए डेटा स्कीमा और ऐक्सेस पैटर्न की पहचान करने में मदद मिलती है. इसे कम से कम अधिकारों के सिद्धांत के आधार पर Rules तैयार करने के लिए डिज़ाइन किया गया है. साथ ही, यह बार-बार "हमला" करने की प्रोसेस को दोहराकर, जोखिम की आशंकाओं का पता लगाने की कोशिश करता है. पुष्टि करने में मदद करने के लिए, यह @firebase/rules-unit-testing का इस्तेमाल करके शुरुआती यूनिट टेस्ट सुइट उपलब्ध कराता है. इससे, Firebase Local Emulator Suite का इस्तेमाल करके, सुरक्षा से जुड़े लॉजिक की पुष्टि स्थानीय तौर पर की जा सकती है.

    एक्सटेंशन को इंस्टॉल करने और उसका इस्तेमाल करने के लिए:

    1. Gemini CLI एक्सटेंशन इंस्टॉल करें:

      gemini extensions install https://github.com/firebase/snippets-rules
      
    2. Gemini CLI खोलें.

      gemini
      
    1. अपने प्रोजेक्ट के रूट से, एक्सटेंशन चलाकर Cloud Firestore के लिए नियम जनरेट करें:

      /firebase-rules:firestore Generate rules using PROJECT ID PROJECT_ID
      

      इसके अलावा, Cloud Storage के लिए नियम जनरेट करें:

      /firebase-rules:storage Generate rules using PROJECT ID PROJECT_ID and BUCKET NAME BUCKET_NAME
      

    यह एक्सटेंशन, आपके प्रोजेक्ट के रूट में Cloud Firestore के लिए rules_test डायरेक्ट्री या Cloud Storage के लिए storage_rules_test डायरेक्ट्री बनाता है. इस नई डायरेक्ट्री में, जनरेट की गई .rules फ़ाइल के साथ-साथ यूनिट टेस्ट वाला Node.js प्रोजेक्ट भी शामिल होता है.

  2. नियमों की पुष्टि और टेस्ट के नतीजों की समीक्षा करें:

    • सिंटैक्स की पुष्टि करना - नियम जनरेट करने के बाद, Gemini CLI Firebase MCP सर्वर से firebase_validate_security_rules कमांड का इस्तेमाल करके, सिंटैक्स की पुष्टि अपने-आप करता है.
    • यूनिट टेस्ट - सिंटैक्स की पुष्टि करने के बाद, Gemini CLI, Firebase Local Emulator Suite का इस्तेमाल करके जनरेट किए गए यूनिट टेस्ट को चलाने की कोशिश करता है. जांचों को चलाने के लिए, आपको Firebase Local Emulator Suite को किसी दूसरे टर्मिनल में चलाना होगा.

    अगर टेस्ट अपने-आप नहीं चलते हैं, तो Firebase Local Emulator Suite को एक अलग टर्मिनल में शुरू करें. इसके बाद, टेस्ट चलाने के लिए इनमें से कोई एक विकल्प इस्तेमाल करें:

    *   Instruct Gemini CLI to run tests:
        ```none
        Firebase Emulator Suite is running in a separate terminal. Please
        execute the tests.
        ```
    *   Run tests manually by following the instructions in the `README.md`
        file in the `rules_test` or `storage_rules_test` directory.
    
  3. जनरेट किए गए Rules के नतीजे से संतुष्ट होने पर, Rules को डिप्लॉय करने के लिए, यहां दी गई Firebase सीएलआई कमांड का इस्तेमाल करें.

    Cloud Firestore

    firebase deploy --only firestore:rules

    Cloud Storage

    firebase deploy --only storage

अन्य संसाधन

  • सुरक्षा से जुड़ी अपनी स्थिति को बेहतर बनाने के लिए, Gemini CLI के लिए सुरक्षा एक्सटेंशन का इस्तेमाल किया जा सकता है. यह एक ओपन-सोर्स एक्सटेंशन है. यह कोड में हुए बदलावों का विश्लेषण करके, सुरक्षा से जुड़े जोखिमों और कमज़ोरियों का पता लगाता है.