设置FireBase的乘积规则。
具有3个数据库集合的示例。
云火库
在firebase收集的国家,所有用户都应该被允许读写。
在firebase收集汽车,只有管理员允许写。
在飞机的firebase集合上,允许所有经过身份验证的用户进行写入。
不工作文档:https://firebase.google.com/docs/rules/basics@cloud-firestore
如何设置语法正确的规则?
// All public to include countries
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read: if true ;
allow write: if true ;
}
}
// check cars collection
match /databases/{database}/documents/Cars {
// For attribute-based access control, Check a boolean `admin` attribute
allow read: if true ;
allow write: if get(/databases/$(database)/documents/users/$(request.auth.uid)).data.admin == true;
}
// check airplanes collection
match /databases/{database}/documents/Airplanes {
// Allow only authenticated content owners access
match /{database}/{userId}/{documents=**} {
allow read: if true ;
allow write: if request.auth.uid == userID
}
}
}
你的规则有几个错误。
match /{document=**} {
allow read: if true ;
allow write: if true ;
}
Firestore区分大小写。为了避免错误,使用一致的命名传达,如camelCase或pascal_case。
必须在match语句的末尾添加一个文档match变量
这应该会起作用:
service cloud.firestore {
match /databases/{database}/documents {
match /users/{userId} {
allow read: if true;
allow write: if request.auth != null && request.auth.uid == userId;
}
match /cars/{carId} {
allow read: if true ;
allow write: if get(/databases/$(database)/documents/users/$(request.auth.uid)).data.admin == true;
}
match /airplanes/{airplane} {
allow read: if true ;
allow write: if request.auth != null ;
}
}
}
最近我收到了一系列Firebase通知,涉及: [Firebase]您的Cloud FiRecovery数据库有不安全的规则 我们检测到您的安全规则存在以下问题:任何用户都可以写入您的整个数据库。因为您的项目没有强大的安全规则,任何人都可以访问您的整个数据库。攻击者可以窃取、修改或删除您的数据,并会抬高您的账单` Edit2:我需要的是允许每个人都写,而不需要登录,但是只有管理员帐户应该能够从Fi
我使用下面的firebase rest API访问firestore数据库数据 为了访问我的firestore数据库,我在关键部分使用了我的访问令牌,但我收到了来自firebase的电子邮件,称“[firebase]您的云firestore数据库有不安全的规则”。直到那时,我才发现任何人都可以访问我的数据库数据,即使没有有效的访问令牌 谢谢
我正在从Firebase实时数据库切换到云Firestore。我的数据库包含拥有存储的用户,每个存储都包含盒子。每个用户都可以拥有多个包含盒子的存储器。每个存储可以包含几个盒子。每个箱子只能放在一个仓库里。 在我应用程序的主视图中,对于该特定用户,我需要列出所有存储以及每个存储中的框,如下所示: 然后,用户应该能够点击每个框以查看内容和更多信息。 在Firebase实时数据库中,每个用户只需一个请
我按顺序调用这些函数(javascript'Firebase'): 我在firestore中设置了安全规则,只有当文档中的电子邮件字段等于auth email:时,才允许读取“users/:docid” 问题是在上会出现权限缺失或不足的错误。当然,数据库中的电子邮件是正确的,所以唯一的问题可能是无效。是否登录(使用任何登录函数),即使解析,也不能保证auth令牌被更新并可以立即使用?
我正在开发一款iOS应用程序,它有(哇,惊喜!)聊天功能。整个应用程序大量使用Firebase工具,对于数据库,我正在使用新的云Firestore解决方案。 目前我正在使用数据库规则加强安全性,但我对自己的数据模型有点挣扎:)这可能意味着我的数据模型选择不当,但我真的很满意,除了实现规则部分。 模型的对话部分如下所示。在我的数据库的根目录下,我有一个集合: 然后我对每个对话都有一个子集合,称为消息
null 基本上数据结构如下所示: 问题是,我应该写什么安全规则来允许用户只在他们所属的组中(拥有组密钥)读取、创建和更新数据?同时,如何禁止用户找出其他群组的密钥?
我知道这只是我在这一点上缺乏理解,但我不知道还能去哪里,我觉得我现在需要一个ELI5。现在我没有得到任何错误,但我也不确定要朝哪个方向去完成我的下一个问题/任务。 这是我第一次用Firebase开发Nativescript应用程序。我能看懂这篇有用的文章(https://hub.packtpub.com/firebase-nativescript-cross-platform-app-develo