axios.delete 正在从 firebase 数据库中删除所有节点

Posted

技术标签:

【中文标题】axios.delete 正在从 firebase 数据库中删除所有节点【英文标题】:axios.delete is removing all nodes from firebase database 【发布时间】:2019-12-11 01:58:32 【问题描述】:

我正在尝试使用 axios 在我的数据库中执行一个简单的删除操作,但它一直在删除整个集合。

我在我的节点中保留了一个 idin,我试图通过我发送的 id 删除一个对象,我都尝试了:

const removeFromFavorites = async (id) => 
    try 
        await axios.delete(`$url.json`,  data:  id  )
        return id
     catch (err) 
        console.log(err)
    


//// or 

const removeFromFavorites = async (id) => 
    try 
        await axios.delete(`$url.json`,  params:  id  )
        return id
     catch (err) 
        console.log(err)
    


两者都在删除所有对象,而不是指定的对象。 有人知道为什么吗?

谢谢

【问题讨论】:

为什么 params: id 中的 id 在花括号中? params 的值应该是一个对象,还是只是一个数字/字符串? 根据我看到的例子,它应该是一个对象:axios.delete(URL, params: foo: 'bar' ) 哦,好吧 - 那不是错字。你试过像params: id: id一样吗? url的值是多少? firebastpath/favorites.json 【参考方案1】:

你应该这样做。如果收藏夹是主节点。

axios.delete(`$url/favorite/$id.json`)

您将在 URL 中传递的 ID,它应该与您要删除的相同。这里的 id 应该是 LIHSF..... 您将在端点中传递它。

【讨论】:

它仍然无法正常工作.. 我试图删除的“id”是节点内的一个属性,它不是生成的 id firebase 你能贴出你的firebase节点的图片来帮助你更好吗? 是的,我刚刚添加到帖子中,请看一下 你的意思是你只是想从那个对象中删除那个 id "349727" 对吧? 不,我想删除包含 id "349727" 但已删除的对象 - 正在删除所有对象【参考方案2】:

您的 id 需要在这样的 url 中...

axios
  .delete(
    "https://<firebaseDatabase>.firebaseio.com/favorites/" +
      req.params.id +
      ".json",
  )
  .then(() => 
    res.json();
  )
  .catch((err) => 
    err.json();
    console.log(err);
  );

【讨论】:

以上是关于axios.delete 正在从 firebase 数据库中删除所有节点的主要内容,如果未能解决你的问题,请参考以下文章

React Axios Delete 每次都不渲染

axios请求忽略参数

对 CORS 服务器的 Axios DELETE 调用在预检 OPTIONS 调用上触发承诺解析

从数组中删除特定项目,未按预期工作

axios delete 请求

axios delete请求 参数