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

问题描述 投票:-2回答:1

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

random id incorrectly inserted而不是像我想要的那样是preregs-> group-> 2020-> userID:value,而是使用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年之内的所有数据。我查看了其他问题,例如Setting custom key when pushing new data to firebase database,但它使用Firebase代替Axios来完成工作。 Firebase POST custom ID似乎也有相同的问题,唯一的答案是使用“ put”,但这再次抹平了我在2020年拥有的所有其他东西。当我不这样做时,我是否还缺少阻止Firebase放置此随机密钥的功能?不想吗?

reactjs firebase post firebase-realtime-database axios
1个回答
3
投票

根据REST API documentation for Realtime DatabasePOST等同于使用客户端SDK时的"push" operation。该推送操作always涉及在随机ID下添加数据。不能避免这样做。

如果知道要添加数据的节点的名称,则应改用PUT。这等效于将"set" operation与客户端SDK一起使用。

由于您在javascript客户端中运行,因此也请考虑仅使用客户端SDK,因为与REST API相比,它更容易使用且效率更高。

© www.soinside.com 2019 - 2024. All rights reserved.