我的firestore.rules中有以下编译错误:
Compilation errors in firestore.rules:
[E] 35:7 - Unexpected 'if'.
[E] 38:7 - Unexpected 'else'.
[E] 42:3 - Unexpected '}'.firestore.rules的摘录如下:
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;
}
}
}我不知道为什么会发生错误。
发布于 2022-01-04 14:17:46
我认为在安全规则中的自定义函数中不允许使用if...then...else,因此您可能需要尝试这样的三元表达式:
function getUserKennung(){
let email = request.auth.token.email;
return email.lower().matches('.*@provider[.]org')
? email[0:7].upper()
: 'ERR: Invalid usermail';
}https://stackoverflow.com/questions/70580115
复制相似问题