I am trying to create a delete function that will get the delete my object from the Firebase.
I have the following structure on FireBase:
recipes   recipebooks      recipesPerRecipebook
  - id          - id        - recipebook_id
  - id          - id           - recipe_id: true
What I want to do is when I click delete I want to remove the recipe_id from recipes and the remove it also from  recipesPerRecipebook/${recipebook_id}
I created a function in my 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 !')
      );
  }
I then have this in recipeDetails.component.ts
delete() {
    this.recipesService.deleteRecipe(this.recipe.$key, this.recipe.recipebook_id);
  }
I get the following error:
error_handler.js:54 Error: Firebase.remove failed: first argument must be a valid function.
I have two questions, firstly and most importantly where am I going wrong. And secondly doing this.sdkdb.child(... twice feels a bit wrong and cumbersome could I simplify this?
Looks quite odd.
Please take a look at the official docs: https://github.com/angular/angularfire2/blob/master/docs/2-retrieving-data-as-objects.md#deleting-data
So you should be able to delete an object like this:
af.database.object('/--your-list-name--/--your-obejct-key--').remove();
where af is the injected AngularFire2 service.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With