【问题标题】:I want to remove element from firebase using javascript我想使用javascript从firebase中删除元素
【发布时间】:2016-10-04 18:02:27
【问题描述】:

我正在尝试了解如何从 Firebase 中删除项目。我已经设置了一个函数(saveEmployee)来创建一个项目,但不知道如何去删除一个项目。

HTML

<tbody ng-repeat="employee in employees"> 
            <tr>
                <td>{{employee.employeeName}}</td>
                <td>{{employee.employeeAge}}</td>
                <td><a class="btn btn-danger" ng-click="removeEmployee(employee.employeeName)" >Delete</a></td>
            </tr>
        </tbody>

JS

$scope.removeEmployee = function(employeeName) {
        console.log(employeeName);
        $scope.myData.child(employeeName).remove();
    };

【问题讨论】:

  • 没人回答
  • 周末可能不会。

标签: javascript angularjs firebase


【解决方案1】:

使用 Firebase.set() 并传入 null。这将删除该员工。

$scope.removeEmployee = function(employeeId) {
   var employeeRef = new Firebase('https://myfirebaseurl.firebaseio.com/employees/' + employeeId);
   employeeRef.set(null);
};

或使用回调处理程序。

$scope.removeEmployee = function(employeeId) {
   var employeeRef = new Firebase('https://myfirebaseurl.firebaseio.com/employees/' + employeeId);
   employeeRef.set(null, function(error) {
       if (error) {
           console.log(error);
       } else {
           console.log('Employee deleted.');
       }
   });
};

【讨论】:

  • 不工作,因为employeeRef 就像“firebaseurl.firebaseio.com/Employee/-KJSFx_NJCdaJqusmL6S/employeeName”,我不知道生成的ID
  • 你不知道生成的id,为什么不呢?在 firebase 中创建新记录后,生成的 ID 将通过 ref 传回。
  • 没有错误说员工已删除并且firebase没有变化
  • 您是否使用 Firebase 仪表板来监控更改?如果是这样,当您处于根级别并扩展节点时,您将看不到更新。新的 Firebase 仪表板要求您单击子节点以实时查看更新。不知道为什么会这样。或者至少对我来说是这样。例如,单击员工节点,查看记录是否仍然存在。如果是这样,请尝试再次删除它以查看它是否已删除。
  • 第一个参数必须是有效的 Firebase URL,并且路径不能包含“.”、“#”、“$”、“[”或“]”。
猜你喜欢
  • 2019-06-27
  • 2012-04-15
  • 1970-01-01
  • 2011-08-28
  • 2011-11-27
  • 1970-01-01
  • 2021-09-11
  • 2018-06-15
  • 1970-01-01
相关资源
最近更新 更多