อินเทอร์เฟซ: คำขอ

พร็อพเพอร์ตี้

การตรวจสอบสิทธิ์

rules.Map

ขอบริบทการตรวจสอบสิทธิ์

  • uid - UID ของผู้ใช้ที่ส่งคำขอ
  • token - แผนที่การอ้างสิทธิ์โทเค็น JWT

แผนที่ token มีค่าต่อไปนี้:


ช่อง คำอธิบาย
"อีเมล" อีเมลที่เชื่อมโยงกับบัญชี หากมี
"ยืนยันด้วยอีเมล" "true" หากผู้ใช้ยืนยันแล้วว่ามีสิทธิ์เข้าถึง "อีเมล" อีเมล
"หมายเลขโทรศัพท์" หมายเลขโทรศัพท์ที่เชื่อมโยงกับบัญชี หากมี
"ชื่อ" ชื่อที่แสดงของผู้ใช้ หากตั้งค่าไว้
"sub" Firebase UID ของผู้ใช้ ชื่อนี้จะเป็นค่าที่ไม่ซ้ำกันภายในโปรเจ็กต์
"firebase.identities" แผนที่ของข้อมูลประจำตัวทั้งหมดที่เชื่อมโยงกับบัญชีของผู้ใช้นี้ คีย์ของแผนที่อาจเป็นอะไรก็ได้ต่อไปนี้ "email", "phone", "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" รหัสกลุ่มผู้ใช้ที่เชื่อมโยงกับบัญชี (หากมี) เช่น "กลุ่มผู้ใช้2-m6tyz"

method

rules.String ที่ไม่เป็นค่าว่าง

วิธีการส่งคำขอ ข้อใดข้อหนึ่ง:

  • get
  • list
  • create
  • update
  • delete

เส้นทาง

rules.Path ที่ไม่เป็นค่าว่าง

เส้นทางของทรัพยากรที่ได้รับผลกระทบ

query

กฎที่ไม่เป็นค่าว่าง

แผนที่ของคุณสมบัติการค้นหา (หากมี)

  • 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