gpt4 book ai didi

javascript - Firebase .push() 抛出 'permission_denied' 错误

转载 作者:行者123 更新时间:2023-11-30 17:26:20 37 4
gpt4 key购买 nike

当使用 .push() 创建输入新数据时,像这样:

var passes = chatRef.push('passes');
passes.set({
userID: FirebaseRef.user.id,
gymName: $(this.options.data.gymName.getContent()).text().split(/[ ]+/).join(' '),
price: $(this.options.data.price.getContent()).text().split(/[ ]+/).join(' '),
numDays: window.gymDays
})

我从 Firebase 收到以下警报:

FIREBASE 警告:设置在/-JPBDARJ67cnr6Yr_nGZ 失败:permission_denied

我的安全规则:

{
"rules": {
"users": {
".write": true,
"$userid": {
".read": "auth.id == $userid",
".write": true
}
},
"passes": {
".write": true
}
}
}

知道如何解决吗?

最佳答案

当您调用 var passes = chatRef.push('passes'); 时会出现这里的问题。此时您实际上是在创建一个新的 child ,而不仅仅是访问 child 的“通行证”。您的安全规则允许您写入“通行证”,但不允许您创建“通行证”。

要解决此问题,请删除行 var passes = chatRef.push('passes'); 并将其替换为 var passes = chatRef.child('passes') ;。这样,它将在 Firebase 中访问一个子项,而不是创建一个。

编辑:

要添加 child ,请使用 .push():

passes.push({
userID: FirebaseRef.user.id,
gymName: $(this.options.data.gymName.getContent()).text().split(/[ ]+/).join(' '),
price: $(this.options.data.price.getContent()).text().split(/[ ]+/).join(' '),
numDays: window.gymDays
});

关于javascript - Firebase .push() 抛出 'permission_denied' 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24170663/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com