我试图在一个有几个嵌套动态子节点的数据模型中实现Firebase rules read限制。
我有以下数据模型:
/groupMessages/<groupId>/<messageId>/
{
"senderId": "<senderId>",
"recipientId": "<recipientId>",
"body": "..."
}
{
"rules": {
"groupMessages"
"$groupId": {
".read": "auth != null"
}
}
}
}
正如您所发现的,安全规则不能用于筛选数据。但是可以使用它们来限制可以对数据执行哪些查询。
例如,您可以通过以下方式查询当前用户是发件人的所有邮件:
var query = ref.child("groupMessages").child(groupId).orderByChild("senderId").equalTo(uid);
您可以通过以下方式保护对组消息的访问,以只允许此查询:
{
"rules": {
"groupMessages": {
"$groupId": {
".read": "auth.uid != null &&
query.orderByChild == 'senderId' &&
query.equalTo == auth.uid"
}
}
}
}
userGroups: {
uid1: {
groupId1: true,
groupId2: true
},
uid2: {
groupId2: true,
groupId3: true
}
}
最后:这种类型的递归加载并不像许多开发人员最初认为的那样低效,因为Firebase通过现有连接将请求流水线化。
我当前的firebase结构如下所示 本来我的保安看起来 这一切都很好,因为我可以通过 然而,我想给这个分支增加更多的安全性,这样用户就不能通过写操作(读取是可以的)更新前端的代码来修改其中的一些条目。我希望用户能够根据isAdmin标志修改这些条目,例如, companyId(读:auth!=null,写:isAdmin==true) 因为所有读取=auth!=无效的起初,我认为因为我能够读取所
规则 Sentinel 的理念是开发者只需要关注资源的定义,当资源定义成功后可以动态增加各种流控降级规则。Sentinel 提供两种方式修改规则: 通过 API 直接修改 (loadRules) 通过 DataSource 适配不同数据源修改 手动通过 API 修改比较直观,可以通过以下几个 API 修改不同的规则: FlowRuleManager.loadRules(List<FlowRule>
我正试图用IOS和firebase建立一个聊天室。当我在firebase控制台的模拟器中测试时,一切正常,但在IOS应用程序中不工作。 我用的结构是这样的 root/members/room id/auth。uid/userdata root/messages/room_id/messages/message 我用IOS创建了一个新房间 并为该房间添加另一名成员(目前使用硬编码uid): 然后像这
我遇到的问题是,使用下面显示的以下Firebase规则,经过身份验证的用户可以成功写入数据库,但无法从中读取,因为我在控制台中获得了“拒绝权限”。当我将读取和写入设置为true(公共)时,读取和写入功能都正常工作。我从数据库中读取的代码也显示如下: 规则: 示例数据库: 以下是确切的错误:
我正在用flexbox做实验,并创建了这个布局。我试图让中间写着“嘿”的白色方框成为父方框的90%宽度/高度,但百分比似乎不会影响它。(我把它设置为100px/100px目前工作) 这很奇怪,因为父节点在检查时有一个定义的宽度/高度。 有人能告诉我如何实现吗?(此外,对我如何使用flexbox的一般批评也很赞赏) http://jsfiddle.net/yv3Lw5gy/1/ 相关类别:
有没有一种方法可以通过使用集合名称变量来概括它