从Firebase服务器删除数据使用键或索引方法

时间:2016-01-16 19:50:13

标签: javascript angularjs firebase angularfire

我需要使用angularjs从firebase中删除一个条目。问题是,如果我使用索引,那么它会删除firebase中的所有条目,如果我使用key方法则不执行任何操作。这是控制器的代码。它应该从其中一个部分的firebase中获取密钥。

$scope.deleteContact = function(key){
              ContactList.destroy(key);
              deleteAlert.show();
                        };

contactFactory.factory('ContactList',   function($firebaseObject,$firebaseArray){

var contact = new Firebase("https://mycontactmanager.firebaseio.com/");

这是从firebase删除条目的功能

destroy: function(key){
contact.remove(key);
                      }

这是部分代码                     

        <td>{{contactItem.name}}</td>
        <td>{{contactItem.email}}</td>
        <td>{{contactItem.phone}}</td>
        <td><a href="#/contact/{{key}}" class="btn btn-success btn-xs">View Contact</a>
        <button class="btn btn-danger btn-xs col-sm-offset-1" ng-click="deleteContact(key)\">Delete</button>


      </td>
      </tr>

      </tbody>         

3 个答案:

答案 0 :(得分:3)

删除不会将密钥作为参数。

您需要通过调用.child(key)进行嵌套,然后调用remove。

ref.child(key).remove();

答案 1 :(得分:1)

你也可以使用名为$ remove的firebase方法,如下所示:

ref.child(键)$删除();

有关删除的文档位于此处:https://www.firebase.com/docs/web/libraries/angular/guide/synchronized-objects.html

答案 2 :(得分:1)

由于您的ref是firebase数据库的根目录,因此您需要找到一个子项并删除该子项,如下所示

ref.child(key).$remove().then(function() {
    // Code after remove
});

请参阅此处https://www.firebase.com/docs/web/libraries/angular/api.html#angularfire-firebaseobject-remove