FireStore规则Get()/Existes()不起作用 [英] firestore rules get() / exists() not working

查看:0
本文介绍了FireStore规则Get()/Existes()不起作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用FiRestore规则,希望在一个函数中调用get()/exist(),然后在子集合中调用该函数。但它将显示错误:

运行模拟时出错-出现未知错误(查看过时的模拟)

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

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

它将显示以下错误:

运行模拟时出错-错误:模拟器。规则行[12],列[31]。找不到函数错误:名称:[GET]。;错误:提供给调用的参数无效。函数:[GET],参数:["||INVALID_ARGUMENT||"](查看过时的模拟)

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

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

我在EXISTS和GET函数中尝试了不同的路径,即使我尝试了完整路径,它也工作得很好。 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)。 使用exists(/databases/{database}/documents/Attendants/$(request.auth.uid)) 这很管用。

解决:在实际开发上试用测试。

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

这篇关于FireStore规则Get()/Existes()不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆