طلب الذكاء الاصطناعي: كتابة قواعد أمان Firebase

يمكن أن يساعد هذا الطلب مساعدك المستند إلى الذكاء الاصطناعي، مثل Gemini CLI، في إنشاء Firebase Security Rules وتحسينه لتطبيقك. يمكنك استخدام الطلب لإنشاء مسودة Rules لحالات الاستخدام الشائعة، مثل منح إذن وصول خاص بمستخدم معيّن، وتنفيذ أذونات مستندة إلى الأدوار، والتحقّق من صحة البيانات.

تركز هذه المطالبة على إنشاء Rules لما يلي:

  • Cloud Firestore: يمكنك تأمين المجموعات والمستندات استنادًا إلى منطق تطبيقك.
  • Cloud Storage for Firebase: التحقّق من صحة أذونات الوصول إلى الملفات المخزَّنة

يمكن أن يساعدك استخدام هذا الطلب في البدء بوضع أمان قوي، ولكن عليك دائمًا اختبار Rules جيدًا قبل نشره في بيئة الإنتاج. لمزيد من المعلومات حول اختبار Rules، يُرجى مراجعة مقالة بدء استخدام Firebase Security Rules: اختبار القواعد.

المتطلبات الأساسية

القيود

نحن نعمل بنشاط على تحسين هذه التجربة، لذا قد تتغيّر قائمة القيود هذه. يُرجى مراجعة هذه الصفحة بشكل متكرر للاطّلاع على آخر الأخبار.

  • يتعذّر على "Gemini في Firebase" إنشاء Firebase Security Rules. استخدام مساعد آخر مستنِد إلى الذكاء الاصطناعي، مثل Gemini CLI
  • تم تصميم الطلب لإنشاء Firebase Security Rules لـ Cloud Firestore وCloud Storage for Firebase. لا يمكنه بعد إنشاء Rules لـ Firebase Realtime Database.
  • لا يتم استدعاء Firebase Security Rules عند الوصول إلى قاعدة البيانات أو الحزمة من خادم أو بيئة خلفية أخرى، مثلاً عند استخدام Firebase Admin SDK. إذا كنت تستخدم Admin SDK، ستكون مسؤولاً عن إدارة عملية منح الإذن والتحقّق من صحة البيانات في رمز الخلفية.

استخدام الطلب

  1. استخدِم الإضافة التجريبية Gemini CLI لـ Firebase Security Rules لإنشاء القواعد والاختبارات.

    يحلّل هذا الامتداد رمز المصدر للمساعدة في تحديد مخططات البيانات وأنماط الوصول إلى Cloud Firestore وCloud Storage. تم تصميمها لإنشاء Rules استنادًا إلى مبدأ الحدّ الأدنى من الأذونات المميزة، كما أنّها تحاول الكشف عن الثغرات الأمنية من خلال عمليات محاكاة متكرّرة "للهجمات". للمساعدة في عملية التحقّق النهائية، توفّر هذه الأداة مجموعة اختبارات وحدة أساسية باستخدام @firebase/rules-unit-testing، ما يتيح لك التحقّق من منطق الأمان محليًا باستخدام "مجموعة أدوات المحاكاة المحلية" من Firebase.

    لتثبيت الإضافة واستخدامها، اتّبِع الخطوات التالية:

    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
      

    تنشئ الإضافة الدليل rules_test لـ Cloud Firestore أو الدليل storage_rules_test لـ Cloud Storage في جذر مشروعك. يحتوي هذا الدليل الجديد على ملف .rules الذي تم إنشاؤه بالإضافة إلى مشروع Node.js يتضمّن اختبارات الوحدات.

  2. راجِع نتائج التحقّق من صحة القواعد والاختبار:

    • التحقّق من صحة البنية: بعد إنشاء القواعد، يتحقّق Gemini CLI تلقائيًا من صحة البنية باستخدام الأمر firebase_validate_security_rules من خادم Firebase MCP.
    • اختبارات الوحدة: بعد التحقّق من صحة البنية، تحاول 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 التي تم إنشاؤها، استخدِم أمر Firebase CLI التالي لنشر Rules.

    Cloud Firestore

    firebase deploy --only firestore:rules

    Cloud Storage

    firebase deploy --only storage

مراجع إضافية

  • للحصول على مساعدة إضافية بشأن مستوى الأمان، يمكنك أيضًا استخدام إضافة الأمان في Gemini CLI، وهي إضافة مفتوحة المصدر تحلّل تغييرات الرموز البرمجية لتحديد المخاطر المتعلقة بالأمان والثغرات الأمنية.