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

2024-02-24

我正在使用 Firestore 规则并想要致电get()/exist()在一个函数中,然后我在子集合中调用该函数。但会报错:

运行模拟时出错 — 发生未知错误(查看过时的模拟)

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

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

它会给出以下错误:

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

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

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

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

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

已解决的错误:

Error running simulation — An unknown error occurred (viewing outdated simulation). Using exists(/databases/{database}/documents/Attendants/$(request.auth.uid))这有效。

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

firestore 规则 get()/exists() 不起作用 的相关文章

随机推荐