使用 Axios 发布到 Firebase 时如何停止随机 ID?

2023-12-22

我目前正在使用 axios 在 React 应用程序中从 Firebase 数据库中发布/获取。在我尝试向数据库发出第一个 POST 之前,我没有遇到任何问题。它已成功发布,但我得到了 ID 的随机字符串,而不是直接发布到我想要的数据库中的位置。

random id incorrectly inserted Instead of being preregs -> group -> 2020 -> userID: value as I want it, I'm getting prereg -> random key -> group -> 2020 -> userID: value.

目前,我的 POST 代码如下:

axios.post('/preregs.json', {
        [this.props.group]: {
            [this.props.currentYear]: {
                [this.props.userID]: document.getElementsByTagName("input")["email"].value
            }
        }
    })

我听说如果您不使用 POST 将数据放入 Firebase 数据库中,它就不会创建该随机 ID。但是,补丁不起作用,因为它只会删除我在 2020 年拥有的所有数据。我查看了发布的其他问题,例如将新数据推送到 firebase 数据库时设置自定义键 https://stackoverflow.com/questions/37483406,但它使用 Firebase 而不是 Axios 来完成这项工作。还Firebase POST 自定义 ID https://stackoverflow.com/questions/45113090谁似乎也有同样的问题,唯一的答案是使用“put”,但这又会抹掉我在 2020 年拥有的所有其他内容。我是否缺少某些东西来阻止 Firebase 在我不需要时放置此随机密钥到?


根据实时数据库的 REST API 文档 https://firebase.google.com/docs/reference/rest/database, a POST https://firebase.google.com/docs/reference/rest/database#section-post相当于一个“推”操作 https://firebase.google.com/docs/database/web/lists-of-data#append_to_a_list_of_data使用客户端 SDK 时。这个推送操作always涉及在随机 ID 下添加数据。对于推动来说,这是不可避免的。

如果您知道要添加数据的节点的名称,则应该使用PUT https://firebase.google.com/docs/reference/rest/database#section-put反而。这相当于使用“设置”操作 https://firebase.google.com/docs/database/web/read-and-write#basic_write与客户端 SDK。

由于您在 JavaScript 客户端中运行,因此还可以考虑使用客户端 SDK,因为它比 REST API 更容易、更高效。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Axios 发布到 Firebase 时如何停止随机 ID? 的相关文章

随机推荐