我正在尝试从Heroku后端访问我的Firebase数据库。我正在使用pyrebase软件包,因为它似乎比firebase软件包更好。但是,虽然我可以在本地安装的python上访问firebase数据,但在Heroku上运行时遇到了问题。因此,配置pyrebase看起来像这样:
config = {
"apiKey": os.environ.get("firebase_api"),
"authDomain": os.environ.get("firebase_auth_domain"),
"databaseURL": os.environ.get("firabase_database_url"),
"storageBucket": os.environ.get("firebase_storage_bucket"),
"serviceAccount": os.environ.get("firebase_services_account")
}
fb = pyrebase.initialize_app(config)
email = os.environ.get("firebase_email")
pw = os.environ.get("firebase_email_password")
auth = fb.auth()
user = auth.sign_in_with_email_and_password(email=email, password=pw)
然后您可以像这样创建数据库对象:
db = fb.database()
最后,您可以像这样访问数据:
data = db.child("Path").child("To").get(user["Data"]).val()
当我在本地运行代码时,所有这些工作正常。但是当我部署到Heroku时,db = fb.database()
行出现问题,我收到错误消息:
'NoneType' object has no attribute 'endswith'
我不认为问题出在我的数据库配置上,因为它在本地工作。有人知道此错误消息在此行中意味着什么吗?
我检查了if fb is None
,但不是。 fb是pyrebase对象:<pyrebase.pyrebase.Firebase object at 0x7f509d433c50>