我是Firebase规则的新手。而且我无法将数据写入当前登录的用户节点。 我的数据库结构是
userdata: {
profile: {
Lp6Sj763bVUXlisPJyaLM3gbns73: {
name: "sample"
avatar: "sample.png",
userid: "albdchalwe"
},
FRw6J6GWK6YbvhuaaHNzPtLRSHJ2: {
name: "sample"
avatar: "sample.png",
userid: "calisdnca"
}
},
additionaldata: {
Lp6Sj763bVUXlisPJyaLM3gbns73: {
notifications: {
0: {
notificationId: "cbawln"
receviedon: 12212
},
1: {
notificationId: "cbawln"
receviedon: 12212
}
}
},
FRw6J6GWK6YbvhuaaHNzPtLRSHJ2: {
notifications: {
0: {
notificationId: "cbawln"
receviedon: 12212
},
1: {
notificationId: "cbawln"
receviedon: 12212
}
}
}
}
,并想授予对与当前登录用户有关的节点的写访问权限。我的数据库规则是
{
rules: {
userdata: {
profile: {
.read: "auth != null",
.indexOn: ["name"]
$userId: {
avatar: {
.write: "$userId == auth.uid"
},
avatar: {
.write: "$userId == auth.uid"
}
userid: {
.write: "$userId == auth.uid && !data.exists()"
}
}
}
}
}
配置文件下的用户节点包含更多节点。我只是在用户节点上添加了3个子节点,以了解其结构。立即保留其他数据节点。
我的问题是无法将数据写入配置文件节点。当我在模拟器上运行它时,我得到以下信息,
[
谁能帮我解决这个问题。预先感谢。
答案 0 :(得分:1)
是因为您正在写/userdata/profile/$uid
而不是定义/userdata/profile/$uid/avatar
的{{1}}吗? (在您的示例中也有重复)