如何在Firebase数据库中删除书签列表里的特定餐厅?
解决Firebase删除特定餐厅书签的问题
嘿,我来帮你搞定这个删除餐厅书签的小难题!先看看你现有代码里的问题,再给你两种可靠的解决方法:
首先修正代码里的语法错误
你写的代码里有个反引号的位置错误——最后那个反引号不小心跑到括号外面了,这会导致路径解析失败,咱们先把这个小问题改掉。
方法一:使用list的remove方法(指定节点Key)
如果你的数据库结构是bookmarks/{user.uid}/restaurant/{restaurantId}(餐厅ID作为子节点的Key),可以用AngularFireList的remove方法,直接传入要删除的餐厅ID作为参数:
// 修正语法后的正确写法 this.afDb.list(`bookmarks/${user.uid}/restaurant`).remove(favorite.restaurant.id);
方法二:使用object直接定位删除
这种方式更直观,直接定位到要删除的具体节点路径,然后调用remove方法:
this.afDb.object(`bookmarks/${user.uid}/restaurant/${favorite.restaurant.id}`).remove();
额外需要确认的几点
- 确保
user.uid是当前登录用户的有效UID,没有为空或者获取错误 - 检查
favorite.restaurant.id和数据库中对应的餐厅节点Key完全匹配(注意大小写、特殊字符等细节) - 验证Firebase安全规则是否允许当前用户删除
bookmarks/{user.uid}/restaurant/{restaurantId}这个节点,权限不足也会导致删除失败
内容的提问来源于stack exchange,提问作者Sireini
相关产品推荐
相关产品推荐

