【发布时间】:2018-12-31 15:00:35
【问题描述】:
所以我已经为这个问题挠头 2 天了。 我对数据库中的级别进行了以下设置:
"PublishedLevels": {
"$levelid": {
"private": {
..list of vars
},
"public": {
playCount: 0,
}
},
}
现在我正在尝试在 playCount 上执行交易,但我不断收到“permission_denied”。但是,当我通过一组在模拟器中运行它时,它工作得很好。
我正在使用以下代码进行交易:
var playCountRef = firebase.database().ref(`/PublishedLevels/${levelData.uid}/public/playCount`);
playCountRef.transaction(count => {
console.log(count);
if (count === null) {
return count = 0;
} else {
return count+1;
}
});
为PublishedLevels设置的规则是:
"PublishedLevels": {
".indexOn": "private/creationDate",
".write": "auth != null",
".read": true,
}
期待朝着正确的方向轻推!
提前致谢,
埃里克
*update1 帖子现在包含所有规则
【问题讨论】:
-
请编辑问题以显示完整的规则,而不仅仅是读/写部分。据我们所知,他们实际上可能在错误的位置。还要验证
levelData.uid是否包含您所期望的内容。 -
嗨@DougStevenson,我刚刚编辑了我的帖子。我确定 levelData.uid 是正确的。提前感谢您的帮助。
-
@DougStevenson 你知道这里发生了什么吗?
标签: javascript firebase firebase-realtime-database firebase-security