简单介绍一下,我正在尝试了解Firebase安全协议,我已经建立了一个名为UsersDB的数据库,该数据库将根据身份验证存储详细信息。uid。详细信息包括全名、电子邮件、提供商、帐户创建日期、上次登录日期。
我设置了如下规则:
{
"rules": {
".read": "auth != null", // only authed users can read/write
".write": "auth != null",
"UsersDB": {
"$uid": {
".read": "auth.uid == $uid", // users can read/write their own data
".write": "auth.uid == $uid"
}
}
}
我的理解是,记录只能由user_id符合auth.uid.的人读写
我的问题是我做得对吗?如果不对,我应该如何实现这一目标?我只希望创建帐户的人能够读写这个,而没有其他uid来访问信息。
最后,作为firebase帐户的管理员。我会考虑创建一个管理控制台类型的软件,允许我访问存储的所有数据。我将如何更改或更新规则,以允许管理员登录访问上述数据。我是否会更改对任何人的读取权限(尽管在我看来,这似乎会在规则中留下漏洞),或者是否有方法声明一条规则,允许我(管理员)对所有数据进行完全读取访问?
谢谢
您忽略了Firebase留档中指定权限级联的一个非常重要的部分:
安全和FIREBASE规则自上而下工作
子规则只能向父节点已声明的内容授予附加权限。他们不能撤销读或写权限。
由于您的顶级读写规则已经允许任何经过身份验证的用户读取/写入所有帐户,因此您不能撤销树中较低的特权。
幸运的是,在您的场景中不需要授予这些更高级别的权限。
{
"rules": {
"UsersDB": {
"$uid": {
".read": "auth.uid == $uid",
".write": "auth.uid == $uid"
}
}
}
}
有了它,每个用户只能读写自己的数据。
请记住,Firebase规则不是过滤器。使用上面的结构,没有用户可以查询/UsersDB
,因为没有人拥有那里的读取权限。
我最近收到一封来自Firebase的电子邮件,告诉我我的数据库(FiRest)的规则不安全,所以我将它们更改为以下内容: 在我有这些规则之前: 在做出改变后,电子邮件不断地回来,我不知道还能做什么。我已经尝试了以下链接中给出的几个选项,但它们都不能满足我的需要。 https://firebase.google.com/docs/rules/insecure-rules#firestore 我需要授
我试图为我的云还原设置安全规则,但我对规则应该应用于哪个数据库感到困惑。 我目前使用的唯一功能是记录Firebase事件。安全规则是否适用于Firebase事件?如果是,应该为哪个数据库编写规则?如果没有,我是否可以拒绝对所有事件的读/写访问,并且事件仍将被记录并发送到BigQuery?
拒绝许可。无法访问存储桶..请访问Firebase控制台中的Storage选项卡,为您的存储桶启用Firebase存储,并确保您有足够的权限来正确提供资源 在谷歌搜索如何设置这些安全规则,我不确定什么是正确的答案。一些答案建议我在代码中编写方法来授予权限,但文档建议我需要在Firebase的端进行。 这是其中一个例子 我无法理解人们的回答 就像几个月前的这张 有人能解释一下当前的Firebase(
问题内容: 我试图显示基于收件人的邮件列表,但现在让我们保持简单。我只是想显示消息列表。 我的规则看起来像这样 但是由于某种原因,我的应用程序不想读取它 只有在我有一条规则看起来像 但这会引起问题,因为我想在通讯的子节点上添加条件。就像是: 我假设这是因为我在通讯上有一个$ firebase,它需要一些读或写规则,但是添加新消息后如何获取事件? 谢谢 问题答案: 关于安全规则,Firebase操作
当用户上载文件时,这个特定的时间存储在文件元数据中的自定义属性“过期”字段中。 我的问题是,我试图将该值用作函数的参数,如下所示: 但是“duration”函数似乎只接受幅度参数中的常量值,而不接受动态值。 有人也试过吗? 谢谢