angular - 使用 AngularFire 2 从 Firebase 中删除对象

标签 angular firebase firebase-realtime-database angularfire2

我正在尝试创建一个删除函数,该函数将从 Firebase 中删除我的对象。

我在 FireBase 上有以下结构:

recipes   recipebooks      recipesPerRecipebook
  - id          - id        - recipebook_id
  - id          - id           - recipe_id: true

我想做的是,当我点击删除时,我想从 recipes 中删除 recipe_id 并将其从 recipesPerRecipebook/${recipebook_id} 中删除

我在我的 recipes.service.ts 中创建了一个函数

deleteRecipe(recipe_id:string, recipebook_id:string) {
    this.sdkDb.child('recipes').remove(recipe_id)
      .then(
        () => alert('recipe deletion requested !')
      );

    this.sdkDb.child('recipesPerRecipebook/${recipebook_id}').remove(recipe_id)
      .then(
        () => alert('recipe Association deletion requested !')
      );
  }

然后我将其放入 recipeDetails.component.ts

delete() {
    this.recipesService.deleteRecipe(this.recipe.$key, this.recipe.recipebook_id);
  }

我收到以下错误:

error_handler.js:54 错误:Firebase.remove 失败:第一个参数必须是有效函数。

我有两个问题,首先也是最重要的是我哪里出错了。其次做 this.sdkdb.child(... 两次感觉有点不对劲,我可以简化一下吗?

最佳答案

看起来很奇怪。

请查看官方文档:https://github.com/angular/angularfire2/blob/master/docs/2-retrieving-data-as-objects.md#deleting-data

所以你应该能够像这样删除一个对象:

af.database.object('/--your-list-name--/--your-obejct-key--').remove();

其中 af 是注入(inject)的 AngularFire2 服务。

关于angular - 使用 AngularFire 2 从 Firebase 中删除对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40653596/

相关文章:

android - isSuccessful() 和 isComplete() 方法之间的区别

java - 将号码从 NumberPicker 发送到 Firebase

javascript - 如何定位 firebase 数据库中的单个值?

javascript - 允许 <a> 标签标题属性中包含 html

angular - 如何在 apexchart 上赋予不同的颜色?

java - FirebaseRecyclerAdapter 中的数据库查询

android - 在android中禁用离线时间插入到firebase?

ios - 使用 Facebook 好友填充桌面 View

ngFor 中的 Angular 动态 View 子级

reactjs - React、React Native 和 Angular 之间共享相同的风格/外观/设计/用户体验