الواجهة: الطلب

أماكن إقامة

المصادقة

rules.Map

اطلب سياق المصادقة.

  • uid - المعرّف الفريد للمستخدم الذي قدّم الطلب.
  • token - خريطة لمطالبات رمز JWT المميز.

تحتوي خريطة token على القيم التالية:


الحقل الوصف
"البريد الإلكتروني" تمثّل هذه السمة عنوان البريد الإلكتروني المرتبط بالحساب، إذا كان متوفّرًا.
"تم التحقق من عنوان البريد الإلكتروني" "صحيح" إذا أثبت المستخدم إمكانية وصوله إلى "البريد الإلكتروني" الخاص بك.
"رقم_الهاتف" تمثّل هذه السمة رقم الهاتف المرتبط بالحساب، إذا كان متوفّرًا.
`الاسم` الاسم المعروض للمستخدم، إذا تم ضبطه.
`sub` المعرّف الفريد في Firebase للمستخدم هذا فريد داخل المشروع.
"firebase.identities" خريطة لجميع الهويات المرتبطة بحساب هذا المستخدم. يمكن أن تكون مفاتيح الخريطة أيًا مما يلي: "البريد الإلكتروني" أو "الهاتف" أو `google.com`، `facebook.com`، `github.com`، `twitter.com`. قيم الخريطة هي قوائم بالمعرفات الفريدة لكل هوية مقدّم الخدمة المرتبط بالحساب. على سبيل المثال: يحتوي "request.auth.token.firebase.identities["google.com"][0]" على رقم التعريف الأول لمستخدم Google المرتبط بالحساب.
"firebase.sign_in_provider" موفِّر خدمة تسجيل الدخول المُستخدَم للحصول على هذا الرمز المميّز يمكن أن تكون إحدى السلاسل التالية: `custom`، `password`، `phone`، `anonymous`، `google.com`، `facebook.com`، `github.com`، `twitter.com`.
"firebase.tenant" رقم تعريف المستأجر المرتبط بالحساب، إذا كان متوفّرًا. مثلاً: `tenant2-m6tyz`

method

rules.String غير فارغة

طريقة الطلب. أحد الخيارات التالية:

  • get
  • list
  • create
  • update
  • delete

المسار

rules.Path غير فارغ

مسار المورد المتأثر.

query

rules.Map غير فارغ

خريطة لخصائص طلب البحث، عند توفّرها

  • limit - عبارة عن حد أقصى لطلب البحث.
  • offset - عبارة إزالة طلب البحث.
  • orderBy - عبارة orderBy في الطلب.

مثال

// Limit documents per request to 50
allow list: if request.query.limit <= 50

المصدر

rules.firestore.Resource غير خالٍ

تتوفّر قيمة المورد الجديدة في طلبات الكتابة فقط.

الوقت

rules.Timestamp غير فارغة

وقت استلام الخدمة الطلب.

بالنسبة لعمليات كتابة Firestore التي تتضمن الطوابع الزمنية من جانب الخادم، هذا الوقت سيكون مساويًا للطابع الزمني للخادم.

مثال

// Make sure that 'myServerTimestampField' was set using a
// server-side timestamp.
request.time == request.resource.data.myServerTimestampField