تستفيد قواعد أمان Firebase من اللغات المرنة والقوية والمخصصة التي تدعم نطاقًا واسعًا من التعقيد والتفاصيل. يمكنك جعل القواعد الخاصة بك محددة أو عامة حسب ما يناسب تطبيقك. تستخدم قواعد قاعدة البيانات في الوقت الفعلي بناء جملة يشبه JavaScript في بنية JSON. تستخدم قواعد Cloud Firestore وCloud Storage لغة تعتمد على Common Expression Language (CEL) ، والتي تعتمد على CEL مع match
allow
بالبيانات التي تدعم الوصول الممنوح بشكل مشروط.
ونظرًا لأن هذه لغات مخصصة، فهناك منحنى تعليمي. استخدم هذا الدليل لفهم لغة القواعد بشكل أفضل أثناء التعمق في القواعد الأكثر تعقيدًا.
حدد منتجًا لمعرفة المزيد حول قواعده.
تستخدم قواعد أمان Firebase في Cloud Firestore وCloud Storage البنية والتركيب التاليين:
service <<name>> {
// Match the resource path.
match <<path>> {
// Allow the request if the following conditions are true.
allow <<methods>> : if <<condition>>
}
}
من المهم فهم المفاهيم الأساسية التالية أثناء إنشاء القواعد:
- الطلب: الطريقة أو الأساليب التي تم استدعاؤها في بيان
allow
. هذه هي الأساليب التي تسمح بتشغيلها. الطرق القياسية هي:get
list
create
update
delete
. تتيح أساليبread
write
الملائمة وصولاً واسع النطاق للقراءة والكتابة على قاعدة البيانات المحددة أو مسار التخزين. - المسار: قاعدة البيانات أو موقع التخزين، الذي يتم تمثيله كمسار URI.
- القاعدة: عبارة
allow
، التي تتضمن شرطًا يسمح بالطلب إذا تم تقييمه على أنه صحيح.
يتم وصف كل من هذه المفاهيم بمزيد من التفصيل أدناه.
تستخدم قواعد أمان Firebase في Cloud Firestore وCloud Storage البنية والتركيب التاليين:
service <<name>> {
// Match the resource path.
match <<path>> {
// Allow the request if the following conditions are true.
allow <<methods>> : if <<condition>>
}
}
من المهم فهم المفاهيم الأساسية التالية أثناء إنشاء القواعد:
- الطلب: الطريقة أو الأساليب التي تم استدعاؤها في بيان
allow
. هذه هي الأساليب التي تسمح بتشغيلها. الطرق القياسية هي:get
list
create
update
delete
. تتيح أساليبread
write
الملائمة وصولاً واسع النطاق للقراءة والكتابة على قاعدة البيانات المحددة أو مسار التخزين. - المسار: قاعدة البيانات أو موقع التخزين، الذي يتم تمثيله كمسار URI.
- القاعدة: عبارة
allow
، التي تتضمن شرطًا يسمح بالطلب إذا تم تقييمه على أنه صحيح.
يتم وصف كل من هذه المفاهيم بمزيد من التفصيل أدناه.
في قاعدة بيانات Realtime، تتكون قواعد أمان Firebase من تعبيرات تشبه JavaScript موجودة في مستند JSON.
يستخدمون بناء الجملة التالي:
{
"rules": {
"<<path>>": {
// Allow the request if the condition for each method is true.
".read": <<condition>>,
".write": <<condition>>,
".validate": <<condition>>
}
}
}
هناك ثلاثة عناصر أساسية في القاعدة:
- المسار: موقع قاعدة البيانات. وهذا يعكس بنية JSON الخاصة بقاعدة بياناتك.
- الطلب: هذه هي الطرق التي تستخدمها القاعدة لمنح حق الوصول. تمنح قواعد
read
write
وصولاً واسع النطاق للقراءة والكتابة، بينما تعمل قواعدvalidate
كتحقق ثانوي لمنح الوصول استنادًا إلى البيانات الواردة أو الموجودة. - الشرط: الشرط الذي يسمح بالطلب إذا تم تقييمه على أنه صحيح.
العناصر الأساسية للقاعدة في Cloud Firestore وCloud Storage هي كما يلي:
- إعلان
service
: يعلن عن منتج Firebase الذي تنطبق عليه القواعد. - كتلة
match
: تحدد مسارًا في قاعدة البيانات أو مجموعة التخزين التي تنطبق عليها القواعد. - بيان
allow
: يوفر شروط منح الوصول، متباينة حسب الطرق. تتضمن الطرق المدعومة:get
،list
،create
،update
،delete
، والطرق الملائمةread
write
. - إعلانات
function
الاختيارية: توفير القدرة على دمج الشروط والتفافها للاستخدام عبر قواعد متعددة.
تحتوي service
على كتلة match
واحدة أو أكثر مع عبارات allow
التي توفر شروط منح الوصول إلى الطلبات. تتوفر متغيرات request
resource
للاستخدام في شروط القاعدة. تدعم لغة قواعد أمان Firebase أيضًا إعلانات function
.
العناصر الأساسية للقاعدة في Cloud Firestore وCloud Storage هي كما يلي:
- إعلان
service
: يعلن عن منتج Firebase الذي تنطبق عليه القواعد. - كتلة
match
: تحدد مسارًا في قاعدة البيانات أو مجموعة التخزين التي تنطبق عليها القواعد. - بيان
allow
: يوفر شروط منح الوصول، متباينة حسب الأساليب. تتضمن الطرق المدعومة:get
،list
،create
،update
،delete
، والطرق الملائمةread
write
. - إعلانات
function
الاختيارية: توفير القدرة على دمج الشروط والتفافها للاستخدام عبر قواعد متعددة.
تحتوي service
على كتلة match
واحدة أو أكثر مع عبارات allow
التي توفر شروط منح الوصول إلى الطلبات. تتوفر متغيرات request
resource
للاستخدام في شروط القاعدة. تدعم لغة قواعد أمان Firebase أيضًا إعلانات function
.
كما هو موضح أعلاه، تتضمن قواعد قاعدة البيانات في الوقت الفعلي ثلاثة عناصر أساسية: موقع قاعدة البيانات كمرآة لبنية JSON الخاصة بقاعدة البيانات، ونوع الطلب، وشرط منح الوصول.
الشرط هو تعبير منطقي يحدد ما إذا كان يجب السماح بعملية معينة أم رفضها. توفر متغيرات request
resource
السياق لهذه الشروط.
الشرط هو تعبير منطقي يحدد ما إذا كان يجب السماح بعملية معينة أم رفضها. توفر متغيرات request
resource
السياق لهذه الشروط.
الشرط هو تعبير منطقي يحدد ما إذا كان يجب السماح بعملية معينة أم رفضها. يمكنك تحديد تلك الشروط في قواعد قاعدة بيانات الوقت الفعلي بالطرق التالية.