firebase - Firebase 规则未按预期应用
问题描述
我最近对我的 Firebase Firestore 规则有奇怪的行为。我正在像这样保护一个集合:
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
function getRoles() {
return get(/databases/$(database)/documents/users/$(request.auth.uid)).data.role;
}
function isAdmin() {
return 'admin' in getRoles();
}
match /registrationsRequests/{document} {
allow create: if true;
allow read, update, delete: if false;
}
match /users/{document} {
allow read: if request.auth.uid == document || isAdmin();
allow write: if request.auth.uid == document || isAdmin();
}
}
}
登录后(并检查用户是否可以使用其 UID),我获取用户。但我收到以下错误(两项检查都应返回 true => isAdmin() 和文档)
FirebaseError: Missing or insufficient permissions.
@edit:使用的查询
const usrDoc = await this.db.collection('users').doc(user.uid).ref.get()
解决方案
推荐阅读
- documentation - 哪里可以获得关于 dm 脚本函数的详细文档
- azure-functions - 读取文本文件并将内容发送到 Azure 数据工厂中的 Azure 函数
- typescript - Vue.js - vue-cli-service 服务 - img src 没有从对象正确加载
- c - 静态结构警告空声明中无用的存储类说明符
- scala - 使用 .csv 扩展名在 azure blov 中保存一个空数据框
- angular - Http 调用不会发送 cookie
- wordpress - 无法导入图库的任何图片
- java - JVM 堆使用变化。这个图正常吗?
- google-chrome-extension - 事件处理程序中的错误,类型错误:无法读取未定义的属性“更新”
- c# - Microsoft DependencyInjection 到 Ninject DI