Firebase Firestore通配符变量不起作用

Firebase Firestore通配符变量不起作用,firebase,google-cloud-firestore,firebase-security,Firebase,Google Cloud Firestore,Firebase Security,我正在尝试使用从中获得的代码测试Firestore安全规则。但它不起作用。甚至自动完成通配符变量也不起作用,奇怪的是,它与“{database}”变量一起工作 请注意,在这个屏幕截图中,变量userid返回的是“{userid}”,而不是用户的id“tbfnhhh13tcnhmn9abdypntpsrw1”。 以下是完整的代码: rules_version = '2'; service cloud.firestore { match /databases/{database}/docume

我正在尝试使用从中获得的代码测试Firestore安全规则。但它不起作用。甚至自动完成通配符变量也不起作用,奇怪的是,它与“{database}”变量一起工作

请注意,在这个屏幕截图中,变量
userid
返回的是“{userid}”,而不是用户的id“tbfnhhh13tcnhmn9abdypntpsrw1”。

以下是完整的代码:

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {    
    match /users/{userId} {
      allow read, update, delete: if request.auth != null && request.auth.uid == userId;
      allow create: if request.auth != null;
    }
  }
}
如果我用这个替换上面的代码,它就可以工作了。因此,问题似乎在于通配符变量

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {    
    match /users/{userId} {
      allow read, update, delete: if request.auth != null && request.auth.uid == "TBfnHh13tCNHmN9aBDhYPNTPsrw1";
      allow create: if request.auth != null;
    }
  }
}

任何帮助都将不胜感激。谢谢大家!

多亏了@Doug Stevenson,我找到了解决办法

请注意,在下面的屏幕截图中,我在位置字段中写入了
/users/{userId}
,这是错误的。我应该直接在字段中输入一个id,例如
/users/P41jhUbe2SUkgtNUensmypfs3ff1
,这样就解决了问题


我希望我能充分理解这些内容,并将其作为一个答案发布,但是关于
resource.id
这里所描述的(“描述的”?更像是提到的:。您的屏幕截图没有显示您的查询参数。您在左面板上向下滚动太远。请编辑问题以更清楚地说明您的查询是什么。如果你不依赖屏幕截图,而是将你正在使用的值复制到问题中,这实际上会更好。请注意,您在左面板中提供的值将与您在实际查询时在代码中使用的值相同。@DougStevenson谢谢!我找到解决办法是因为你给了我线索。我已经发布了答案。