rules. Firestore. طلب
سياق الطلب الوارد
أماكن إقامة
المصادقة
اطلب سياق المصادقة.
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