在复杂的产品中,您通常必须使用相同的规则条件,例如,如果用户是管理员:
match /games/{game} {
allow read: if true;
allow write: if request.auth != null && get(/databases/$(database)/documents/users/$(request.auth.uid)).data.admin == true
}
match /locations/{location} {
allow read: if true;
allow write: if request.auth != null && get(/databases/$(database)/documents/users/$(request.auth.uid)).data.admin == true
}
有没有办法将条件存储在变量中以重用它(而不是每次都写它)?例如:
const isAdmin = request.auth != null && get(/databases/$(database)/documents/users/$(request.auth.uid)).data.admin == true;
match /games/{game} {
allow read: if true;
allow write: if isAdmin
}
match /locations/{location} {
allow read: if true;
allow write: if isAdmin
}
我不知道 Firestore 规则背后的语言是什么以及我可以使用什么样的资产。