我是Firebase数据库的新手,我不打算使用Firebase身份验证。
是否可以基于Firebase实例ID设置Firebase数据库规则,而不是在身份验证的用户ID上?
这是我正在考虑实施的结构:
/instanceIDs
/iid1
/somedata
/someotherdata
/iid2
...
/iid3
...
我想将读/写入仅限于该特定实例ID
任何人都可以显示如何设置这样的规则?
否则,如果我设置/写入true to to to t true to t true,那么安全风险是什么?如果我的本机移动应用程序代码仅在特定实例ID分支上读取/写入/写入,我可以期待一些安全问题吗?
使用Firebase Cloud Messaging的应用程序ID标识该特定设备上该特定应用程序的安装。该值在Firebase安全规则中不可用。
虽然听起来是一个有趣的想法,可以基于此实例ID进行保护,但长期它将不起作用。实例ID可以随着时间而变化,每次发生的设备都将失去对其数据的访问。
访问Firebase(数据库和存储(通常基于应用程序的用户。与实例ID不同,用户的ID随时间稳定:这意味着同一用户将始终具有相同的UID,因此可以访问相同的资源。如果您不想要求用户登录,则可以使用Firebase的匿名身份验证。
ps:如果您想尝试使用实例ID来保护访问权限,则可以轻松地将实例ID传递给服务器,铸造Firebase身份验证令牌(您可以为此使用云功能(,然后使用签名的自定义令牌。