Google cloud firestore firestore规则模拟器是否考虑了现有文档的实际收集?

Google cloud firestore firestore规则模拟器是否考虑了现有文档的实际收集?,google-cloud-firestore,firebase-security,Google Cloud Firestore,Firebase Security,firebase/firestore规则模拟器是否考虑了现有的实际集合?例如,我有一个名为“users”的集合和规则 match /users/{uniq_username} { // let authed users create new uniq names allow create: if request.auth != null && !exists(/databases/$(database)

firebase/firestore规则模拟器是否考虑了现有的实际集合?例如,我有一个名为“users”的集合和规则

match /users/{uniq_username} {
        // let authed users create new uniq names
        allow create: if request.auth != null 
                      && !exists(/databases/$(database)/documents/users/$(uniq_username))
检查该集合中不存在同名文档。我目前在实际收藏中有一个名为“XXX”的文档。在firestore规则模拟器中执行创建操作时

{"__name__":"/databases/(default)/documents/users/XXX","data":{some data...}}
应获得“权限被拒绝”(因为文档“XXX”已存在于实际集合中),而不是“允许访问”


那么,我在这里使用的
exists
规则是否有问题,或者firestore规则模拟器在运行模拟时没有考虑集合中的实际文档?

模拟器在测试规则时应该使用数据库的实际内容。正如Doug所说,模拟器应根据实际数据进行检查。根据您目前提供的信息,很难理解为什么这里似乎没有发生这种情况。你能提供一个模拟器的屏幕截图来显示你正在尝试的写操作吗?当你在做的时候,请同时添加一个屏幕截图,显示文档已经存在于集合中。@DougStevenson我明白了。事实上,我写规则的方式有问题(没有结尾分号)。但是,由于找不到任何说明模拟器使用实际数据库的文档,我认为这可能是一个可以留给像我这样的其他调试人员的问题。如果你把你的评论变成回答,我会接受的。