firestore 规则 get()/exists() 不起作用

Het*_*tel 6 firebase-security google-cloud-firestore

我正在使用 Firestore 规则并想致电get()/exist()我正在使用 Firestore 规则并希望在函数中但会报错:

\n\n
\n

运行模拟时出错 \xe2\x80\x94 发生未知错误(查看过时的模拟)

\n
\n\n

你能帮我指出我的错误吗?

\n\n

当我尝试\n允许创建时: if get(/databases/{database}/documents/Attendants/$(request.auth.uid).data.UserID)!=request.auth.uid

\n\n

它会给出以下错误:

\n\n

运行模拟时出错 \xe2\x80\x94 错误:simulator.rules 行 [12],列 [31]。函数未找到错误:名称:[get].;错误:提供的调用参数无效。函数:[get],参数:["||invalid_argument||"](查看过时的模拟)

\n\n

当我关注此文档时https://firebase.google.com/docs/firestore/manage-data/transactions并尝试exist()时:

\n\n

存在(/databases/{database}/documents/admins/$(request.auth.uid));\n仍然不起作用。

\n\n

我尝试了不同的路径存在并获取功能,即使我尝试完整路径,它也可以正常工作。\nget(/databases/$(database)/documents/GroupExperiences/Experience/PrivateExperience/XmZPoKKQuZBeP68KAIJl/Admins/it07).data

\n\n
   match /PrivateExperience/{Experience}\n   { \n    function isAdmin()\n     {\n       //return true;\n       return exists(/databases/$(database)/documents/Admins/$(request.auth.uid));\n          }\n          function isAttendant()\n          {\n            return exists(/databases/$(database)/documents/Attendants/$(request.auth.uid));\n          }\n        allow create: if request.auth == null; \n         match /Activities/{Activity=**}\n        {\n         allow create: if (isAdmin() || isAttendant());\n        }\n       }\n
Run Code Online (Sandbox Code Playgroud)\n\n

规则和测试屏幕\n数据库架构

\n

Het*_*tel 4

已解决的错误:

\n

Error running simulation \xe2\x80\x94 An unknown error occurred (viewing outdated simulation).\n使用exists(/databases/{database}/documents/Attendants/$(request.auth.uid))\n 这有效。

\n

解决:通过尝试在实际开发中进行测试。

\n

结论:这是有关 Firestore 规则模拟的问题。

\n