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

如何在firebase-admin的push()中自定义Firebase实时数据库节点键

使用自定义键替代Firebase实时数据库的自动生成键

当然可以避免push()生成的随机字母数字键,只需要放弃使用push()方法,转而通过child()指定你的自定义键,再用set()或update()方法存储数据即可。

修改后的示例代码

def post(self, request):
    """处理POST请求"""
    # 从请求中获取数据
    name = request.POST.get('name')
    age = request.POST.get('age')
    location = request.POST.get('location')

    # 建立数据库根引用
    ref = db.reference('/')

    # 定义自定义键(可以是固定值,也可以根据请求动态生成,比如用户ID、邮箱等)
    custom_key = "user1"  # 示例:也可替换为 request.POST.get('user_id') 这类动态值

    # 通过child指定自定义键,直接写入数据
    ref.child(custom_key).set({
        'Name': name,
        'Age': age,
        'Location': location
    })

    return JsonResponse({"message": "数据提交成功"}, status=200)

修改后的节点结构

运行上述代码后,数据库节点会直接使用你指定的自定义键,不再生成随机ID:

{
    "data": {
        "user1": {
            "Age": "20",
            "Location": "US",
            "Name": "Dummy name 2"
        },
        "user2": {
            "Age": "22",
            "Location": "count1",
            "Name": "Dummy 1"
        }
    }
}

注意事项

  • 自定义键必须保证唯一性,否则新写入的数据会直接覆盖同名键下的原有数据
  • 如果需要动态生成唯一键,可以基于用户的唯一标识(如用户ID、邮箱哈希值)或者业务逻辑生成,避免冲突

内容的提问来源于stack exchange,提问作者Prakhar Rathi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 11:20:33