首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Firestore.rules中的编译错误:意外的'if‘

Firestore.rules中的编译错误:意外的'if‘
EN

Stack Overflow用户
提问于 2022-01-04 14:13:57
回答 1查看 200关注 0票数 0

我的firestore.rules中有以下编译错误:

代码语言:javascript
运行
复制
Compilation errors in firestore.rules:
[E] 35:7 - Unexpected 'if'.
[E] 38:7 - Unexpected 'else'.
[E] 42:3 - Unexpected '}'.

firestore.rules的摘录如下:

代码语言:javascript
运行
复制
service cloud.firestore {
  match /databases/{database}/documents {

    match /requests/{id} {
     allow read: if isSignedIn() && ((getUserKennung() in resource.data.users_read) || userIsXY());
     allow write: if isSignedIn() && ((getUserKennung() in resource.data.users_write) || userIsXY());
    }

    function getUserKennung(){
     let email = request.auth.token.email;
     if(email.lower().matches('.*@provider[.]org')){
       return email[0:7].upper();
     }
     else {
       return 'ERR: Invalid usermail';
     }
    }

    function userIsXY(){
      return request.auth.token.email == 'XY@provider.org';
    }

    function isSignedIn(){ 
      return request.auth != null;
    }
  }
}

我不知道为什么会发生错误。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-04 14:17:46

我认为在安全规则中的自定义函数中不允许使用if...then...else,因此您可能需要尝试这样的三元表达式:

代码语言:javascript
运行
复制
function getUserKennung(){
 let email = request.auth.token.email;
 return email.lower().matches('.*@provider[.]org')
   ? email[0:7].upper()
   : 'ERR: Invalid usermail';
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70580115

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档