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

Python操作Firebase实时数据库报错:module 'firebase.firebase'无post属性

解决Firebase实时数据库AttributeError: 没有'post'属性的问题

嘿,这个问题我之前也碰到过,本质是你用的Firebase Python库要么版本太旧、不再维护,要么方法名和你预期的不一样。下面给你几个靠谱的解决思路:

1. 替换成维护活跃的Firebase Python库

你当前用的firebase包(也就是python-firebase)已经很久没更新了,方法名和现代Firebase的API不匹配。推荐换成以下两个库之一:

选项A:使用Pyrebase4(社区维护的常用库)

首先卸载旧库,安装Pyrebase4:

pip uninstall firebase
pip install pyrebase4

然后修改你的代码,用push方法实现你想要的“添加数据并自动生成唯一ID”的功能(对应你原来想调用的post逻辑):

import pyrebase

# 从Firebase控制台获取你的项目配置
config = {
    "apiKey": "你的项目API_KEY",
    "authDomain": "diatrack-48525.firebaseapp.com",
    "databaseURL": "https://diatrack-48525.firebaseio.com/",
    "storageBucket": "diatrack-48525.appspot.com"
}

# 初始化Firebase应用
firebase = pyrebase.initialize_app(config)
db = firebase.database()

# 假设name、gender、age是你已经定义好的变量
data = {
    'name': name,
    'gender': gender,
    'age': age,
    'sugartype': 'Type 1'
}

# 向"Sugar type"节点添加数据,自动生成唯一ID
result = db.child("Sugar type").push(data)
print("数据添加成功,返回ID:", result)

选项B:使用官方Firebase Admin SDK

如果是后端服务场景,更推荐用官方的Admin SDK,功能更完整:
先安装依赖:

pip install firebase-admin

然后从Firebase控制台的「设置 > 服务账号」下载JSON格式的密钥文件,再编写代码:

import firebase_admin
from firebase_admin import credentials
from firebase_admin import db

# 替换成你的密钥文件路径
cred = credentials.Certificate("path/to/your-service-account-key.json")
firebase_admin.initialize_app(cred, {
    'databaseURL': 'https://diatrack-48525.firebaseio.com/'
})

# 获取"Sugar type"节点的引用
ref = db.reference('Sugar type')

# 添加新数据(自动生成唯一ID)
new_entry_ref = ref.push()
new_entry_ref.set({
    'name': name,
    'gender': gender,
    'age': age,
    'sugartype': 'Type 1'
})
print("数据添加完成")

为什么原来的代码会报错?

你用的旧python-firebase库的FirebaseApplication类根本没有post方法,它的添加数据方法名为push,而且这个库已经多年未更新,兼容性很差,所以才会出现AttributeError。换成上面两个维护活跃的库就能解决问题啦。

内容的提问来源于stack exchange,提问作者Art Maco Del Rosario

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 10:29:19