【发布时间】:2020-12-01 13:47:01
【问题描述】:
我似乎无法找到任何有关 Firebase 读/写规则的特定场景的文档。目前,我将我的“用户”数据库设置为只允许登录用户写入数据,并且只允许他们在数据库中的“孩子”写入数据。这很简单。
但是,在用户 'child' 中,有一个游戏 ID 对应于 'games' 数据库下的孩子名称。以下是我的数据在 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",
"hostPos" : "25,45",
"guestPos": "38,47"
}
}
使用 JS 将正确的数据读取/写入正确的“活动游戏”以比较游戏 ID(如果它存在于用户配置文件中)没有问题,我只是在努力使用 firebase 规则设置它,以便玩家只有在他们的个人资料中有匹配的 GameID 时才能将数据写入活动游戏。
提前致谢!
edit 两个数据库都是“实时”类型的数据库
【问题讨论】:
-
请编辑问题以指明您正在使用的数据库。 Firebase 提供了两个数据库 - 实时数据库和 Firestore。您还应该展示您编写规则的尝试,即使它们不起作用。
-
感谢您的更新。不幸的是,我仍然不完全清楚。你是说
Users和ActiveGames的JSON sn-ps 都存储在一个Firebase Realtime Database 中吗?如果是,请编辑您的问题以显示您正在使用的实际 JSON(作为文本,没有屏幕截图)。您可以通过单击Firebase Database console 上溢出菜单 (⠇) 中的“导出 JSON”链接来获取此信息。 -
@DougStevenson 编辑了这个问题,抱歉。使用实时数据库。我使用的 userID 规则是他们在文档中显示的标准,但我真的不知道从哪里开始。
-
@FrankvanPuffelen 它们是两个独立的数据库。我将直接从 .json 文件中粘贴数据。
-
@FrankvanPuffelen 我应该说同一个 Firebase 项目中有两个独立的实时数据库。
标签: firebase firebase-realtime-database firebase-security