You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过文本输入框设置Firebase子节点名称?

解决方法

你的问题出在没有正确获取输入框的值并拼接到Firebase路径中——之前的写法把选择器字符串('#name')直接当成了子节点名称,而不是输入框的实际内容。

正确的写法应该先获取输入框的值,再将其拼接到路径里:

// 先获取输入框的实际值
const userName = $('#name').val();
// 用获取到的值作为子节点名称拼接路径
contactsRef.child(`users/${auth.uid}/${userName}`)
  .set({ a1: userName });

也可以直接在child()方法里完成拼接:

contactsRef.child("users/" + auth.uid + "/" + $('#name').val())
  .set({ a1: $('#name').val() });

额外注意事项

  • 建议先判断输入值是否为空,避免创建无效的空名称子节点:
    const userName = $('#name').val().trim();
    if (userName) {
      contactsRef.child(`users/${auth.uid}/${userName}`)
        .set({ a1: userName });
    } else {
      alert("请输入有效的用户名");
    }
    
  • Firebase节点名称不允许包含.、#、$、[、]、/这类特殊字符,如果业务需要支持这类输入,要先对值做转义处理。

内容的提问来源于stack exchange,提问作者King Moaz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 23:55:24