如何解决如何仅不基于UserID设置Firebase规则?
我似乎找不到针对此特定方案的任何有关Firebase读/写规则的文档。目前,我已将“用户”数据库设置为仅允许登录用户写入数据,并且只能写入其数据库中的“子级”。这非常简单。
但是,在用户“子代”中,有一个游戏ID,与“游戏”数据库下的子代名称相对应。以下是一些有关如何在Firebase中构造数据的示例:
(User Database Ex)
{
"fakeuser1" : {
"GameID" : "G071520001","Name" : "Jack Sparrow","email" : "fakeuser1@fakeemail.com"
},
在游戏数据库中,游戏数据的结构如下:
(Game Database Ex)
{
"ActiveGames" : {
"G071520001": {
"Host" : "Jack Sparrow","hostPos" : "25,45","guestPos": "38,47"
},"G071520200": {
"Host" : "Jim Fake",47"
}
}
使用JS读取正确的数据并将其写入正确的“活动游戏”,以比较游戏ID(如果用户个人资料中存在游戏ID)没问题,我只是在尝试使用 firebase规则进行设置,以使玩家只有在配置文件中具有匹配的GameID时,才可以将数据写入活动游戏。
谢谢!
edit 这两个数据库都是“实时”类型的数据库
解决方法
一个数据库实例的安全规则无法从另一个数据库实例读取数据。允许这样做几乎抵消了从拥有多个实例开始就获得的任何性能优势。
您需要确保数据库实例中有确保访问安全所需的所有数据。这可能意味着您需要将(一些)用户配置文件数据复制到该用户所属的数据库实例中。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。