Я пытаюсь получить доступ к своей базе данных Firebase из моего сервера Heroku. Я использую пакет pyrebase, поскольку он работает лучше, чем пакет firebase. Но хотя я могу получить доступ к своим данным Firebase при локальной установке python, у меня возникла проблема с запуском на Heroku. Так что настройка пиребазы выглядит примерно так:
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.Firebase object at 0x7f509d433c50>