向Firebase RTDB推送数据时能否自定义替换自动生成的唯一节点键?
解答
- 你当前使用
POST方法调用Firebase Realtime Database REST API时,平台会默认生成随机唯一键作为新节点的名称,要自定义键名只需调整请求方式和URL即可。 - 具体调整方案:
- 将请求方法从
POST改为PUT - 在你原本的请求URL末尾追加你想要自定义的键名,注意
.json后缀要放在自定义键名的后面
- 将请求方法从
修改后的参考代码如下:
function addStudentHandler(studentData) { // 示例:用学生学号作为自定义键名,可根据需求替换为你想要的任意合法值 const customKey = studentData.stuId; // 拼接自定义键名到URL中,注意.json后缀的位置 const requestUrl = `你原本的RTDB接口地址前缀/${customKey}.json`; fetch( requestUrl, { method: "PUT", // 把POST改为PUT body: JSON.stringify(studentData), headers: { "Content-Type": "application/json", } } ) .then (() => { history.replace("/"); }); }
注意:
- 自定义键名不能包含
. / # $ [ ]这类Firebase RTDB禁止的特殊字符- 如果你指定的自定义键名在对应路径下已存在,
PUT请求会直接覆盖该节点下的原有数据,如果需要避免覆盖可以先发送一次GET请求确认键名是否存在后再执行写入操作。
内容的提问来源于stack exchange,提问作者Airlo
相关产品推荐
相关产品推荐

