如何在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
相关产品推荐
相关产品推荐

