【发布时间】:2017-04-28 12:34:29
【问题描述】:
我正在尝试使用 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 的属性,它是用户 ID 及其信息的映射,而我无权更新 registrations 属性?
【问题讨论】:
标签: javascript firebase firebase-realtime-database firebase-security