【问题标题】:Firebase admin SDK - DELETE response not correctFirebase 管理员 SDK - 删除响应不正确
【发布时间】:2017-09-07 06:44:39
【问题描述】:

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

【问题讨论】:

    标签: javascript node.js firebase firebase-realtime-database firebase-admin


    【解决方案1】:

    我想了一会儿就做了。状态代码 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"});
          });
    });
    

    【讨论】:

      猜你喜欢
      • 2017-09-23
      • 2019-03-14
      • 1970-01-01
      • 2019-12-28
      • 2019-02-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-21
      相关资源
      最近更新 更多