我正在尝试使用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
,该属性应授予我删除记录的权限?或者,也许是因为
Game
对象具有一个名为registrations
的属性,该属性是userId及其信息的映射,而我没有权限更新registrations
属性? 最佳答案
我是Firebase Bolt的新手。
我建议您使用以下语法。
delete() { auth != null && auth.uid == prior(this).ownerId }