我正在尝试使用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) }
}
我总是收到错误:set at /games/{gameId} failed: permission_denied.
问题是我无法删除记录,因为我尝试删除的记录包含属性ownerId
,这应该授予我删除记录的权限吗? / p>
或许是因为Game
对象有一个名为registrations
的属性,它是userId的地图及其信息,我没有权限更新{{1属性?
答案 0 :(得分:1)
我是firebase bolt的新手。 我建议你使用以下语法。
delete() { auth != null && auth.uid == prior(this).ownerId }