Firestore安全规则部署时get函数相关编译错误求助
Firestore规则部署编译报错解决方案
所有报错均来自isAdmin函数内的语法书写错误,具体问题如下:
- 通配符变量引用格式错误:
get函数的路径中使用了(database),Firestore规则要求引用路径通配符必须用大括号包裹,正确写法为{database} - 逻辑运算符转义错误:代码中的
&&是HTML转义后的字符,Firestore规则里直接使用&&表示逻辑与即可 - 括号不匹配:return语句末尾多了2个多余的右括号,导致整体语法解析失败
修正后的完整规则代码如下:
rules_version = '2'; service cloud.firestore { match /databases/{database}/documents { match /projects/{project} { function isSignedIn() { return request.auth != null; } function isAdmin() { return isSignedIn() && get(/databases/{database}/documents/users/$(request.auth.uid)).data.isAdmin == true; } allow read: if isSignedIn(); allow create, update, delete: if isAdmin(); } } }
内容的提问来源于stack exchange,提问作者Jordan
相关产品推荐
相关产品推荐

