繁体   English   中英

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

[英]Firebase admin SDK - DELETE response not correct

我是Java语言的新手(但不是编程新手)。

我正在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"});
      });
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM