firebase - 如果我需要非登录用户能够读写,我该如何编写 Firebase 安全规则?
问题描述
我是 Firebase 的新手,我的安全规则有问题。我最近接手了一个项目,目前的规则是:
{
"rules": {
".read": true,
".write": true
}
}
这显然是不安全的。该应用程序允许用户(登录)输入客户电话号码,并使用 Twilio 向这些客户发送文本,要求他们查看用户的产品。客户无需进行任何登录 - 他们只需单击 Twilio 的链接,输入他们的星级评分,即可选择访问其他评论网站。
在 Firebase 数据库中,客户(以及他们输入的评论)是输入他们的用户的子级。根据文档,我认为我不能制定用户必须经过身份验证的规则,因为这也将适用于所有孩子(客户)。
我是否需要将匿名身份验证添加到我的应用程序才能为每个客户创建一个匿名 uid?有没有更简单的方法来保护它?
这是从 Firebase 导出的 Json 示例:
{
"profiles" : {
"User1_UID" : {
"guests" : {
"guest-id-here" : {
"createdOn" : "2018-06-28T16:23:53.793Z",
"firstName" : "",
"id" : "id-here",
"lastName" : "",
"phone" : "",
"ratingLeft" : true,
"reviewSite" : true,
"reviewSiteClicked" : {
"facebook" : true,
"google" : true,
"other" : false,
"tripadvisor" : true,
"yelp" : true
},
"reviewSiteClickedOn" : "2018-06-28T16:26:46.237Z",
"reviewedOn" : "2018-06-28T16:25:22.996Z",
"starRating" : "5"
},
"guest2-id-here" : {
"createdOn" : "2018-07-15T18:57:52.171Z",
"firstName" : "Joe",
"id" : "guest2-id",
"lastName" : "Schmoe",
"phone" : "+1234567890",
"ratingLeft" : false,
"reviewedOn" : "",
"starRating" : ""
},
}
},
"User2_UID" : {
"guests" : {
"guest-id-here" : {
"ratingLeft" : true
}
}
},
解决方案
推荐阅读
- javascript - 如何使用 li-name 作为 li-item 中的链接
- php - 如何仅显示用户表中排名列中值为1的用户?
- python - 如何将bash转换为python3?
- c# - 阅读时遇到死锁时如何使用实体框架重试策略
- if-statement - 在 Google 表格中验证公式后如何选择选定行和下一行?
- google-sheets - 表格转置和拆分逗号分隔的列表并重复
- distribution - meshlab:我的网格拓扑是否影响曲率结果
- razor - 为什么 Bootstrap 面板在 Blazor 客户端中不起作用?
- r - 如何在ggplot中绘制虚线95%置信区间
- amazon-web-services - Terraform:具有指定可用区的 ElastiCache Redis 集群?