Firebase 运行firestore安全规则时出现空值错误

Firebase 运行firestore安全规则时出现空值错误,firebase,google-cloud-firestore,firebase-security,Firebase,Google Cloud Firestore,Firebase Security,我正在学习firestore安全规则,但我无法理解为什么我的安全规则会失败 这是我的数据结构: 这是我尝试运行的规则: rules_version = '2'; service cloud.firestore { match /databases/{database}/documents { match /company/{company} { allow create, read, write, delete: if request.auth.uid != null

我正在学习firestore安全规则,但我无法理解为什么我的安全规则会失败

这是我的数据结构:

这是我尝试运行的规则:

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {

    match /company/{company} {
      allow create, read, write, delete: if request.auth.uid != null && 
        get(/databases/$(database)/documents/developer/$(request.auth.uid)).data.is_admin == true             
    }
  }
}
这是来自模拟器的JSON有效负载:

{
  "uid": " sxTCUVtxcSSTIWicv7op10Cc3ff2",
  "token": {
    "sub": " sxTCUVtxcSSTIWicv7op10Cc3ff2",
    "aud": "test-123",
    "email": "",
    "email_verified": false,
    "phone_number": "",
    "name": "",
    "firebase": {
      "sign_in_provider": "google.com"
    }
  }
}
您可以看到
UID
与开发人员文档ID匹配。这就是我收到的错误

运行模拟时出错–错误:simulator.rules行[6],列[73]。空值错误


请告诉我我做错了什么。

来自模拟器的JSON负载在“uid”中显示一个前导空格:


它应该在从模拟器输入中删除空间后工作。

哦,我的天哪!!我真傻。你完全正确。谢谢。
"uid": " sxTCUVtxcSSTIWicv7op10Cc3ff2",  
        ^Remove this space