【问题标题】:axios.delete is removing all nodes from firebase databaseaxios.delete 正在从 firebase 数据库中删除所有节点
【发布时间】: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

标签: javascript reactjs firebase rest axios


【解决方案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);
  });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-16
    • 1970-01-01
    • 2017-12-26
    • 2021-05-15
    • 2018-04-12
    • 1970-01-01
    • 2023-01-30
    相关资源
    最近更新 更多