我正在尝试使用 firebase.remove()
从 firebase 中删除一条记录,如下所示:
// inside deleteGame function
const promiseDeleteGame = firebase.child(`games/${game.id}`).remove();
return Observable.from(promise)
.mapTo(deleteGameDone(game))
.catch(error => Observable.of(deleteGameFailure(error)));
我的rules.bolt
文件配置如下:
isOwner(gameId) { auth.uid == root.games[gameId].ownerId }
path games/{gameId} is Game {
read() { true }
create() { true }
update() { true }
delete() { isOwner(gameId) }
}
我总是收到错误:在/games/{gameId} 设置失败:permission_denied。
问题是我无法删除记录,因为我尝试删除的给定记录包含属性 ownerId
,该属性应该授予我删除该记录的权限?
或者可能是因为 Game
对象有一个名为 registrations
的属性,它是 userId 及其信息的映射,而我无权更新 注册
属性?
最佳答案
我是 firebase Bolt 的新手。 我建议您使用以下语法。
delete() { auth != null && auth.uid == prior(this).ownerId }
关于javascript - Firebase删除、bolt权限配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42349604/