Firebase 管理 SDK - 删除响应不正确

Firebase admin SDK - DELETE response not correct

我是 Javascript 的新手(但不是编程新手)。

我正在使用 NodeJs 中的 Firebase ADMIN SDK 创建 REST API。如果资源存在,我能够成功执行 DELETE 请求。但是如果没有(或者ID不正确),POSTMAN中的响应还是成功的。

我猜是回调函数不对。当我实现 GET/:id 和 PUT/:id 时,我可能会遇到同样的问题。请帮忙。

// DELETE /api/billingPlans/:id
// Delete a billing plan
routes.delete('/:id', (req, res) => {
  var ref = admin.database().ref(firebaseNode);
  //Have also tried snapshot.exists() but similar problem occurs
  return ref.child(req.params.id).once('value', function(snapshot) {
    snapshot.ref.remove(function(error){
      if(!error)
        res.status(200).json({"result" : "DELETE Success"});
      else res.status(204).json({"error" : "Not found"});
      }); 
});

想了想就做了。状态代码 204 未在 POSTMAN 中发回格式正确的正文。不知道为什么。简化了代码,现在代码如下所示:

// DELETE /api/billingPlans/:id
// Delete a billing plan
routes.delete('/:id', (req, res) => {
  var ref = Common.admin.database().ref(firebaseRootNode);
  ref.child(req.params.id).once('value', function(snapshot) {
      if(snapshot.exists()){
        snapshot.ref.remove();
        return res.status(200).json({"result" : "DELETE Success"});
      }
        //204 does not send back a body
        return res.status(200).json({"error" : "Not found"});
      });
});