问题
I'm new to Firebase and I am following their tutorial online. I'm trying to authenticate into a quick DB that I created with a few records. I'm getting the error: TypeError: init() got an unexpected keyword argument 'status'
I've made sure my urllib3 is up to date and confirmed my firebase_Admin is up to date. I've checked my file path for json file and copied my database URL into it.
import firebase_admin
from firebase_admin import credentials
from firebase_admin import db
#Generated from settings of a project.
cred = credentials.Certificate(r"Path to json file in the same directory as program")
firebase_admin.initialize_app(cred, {'databaseURL': 'https://mydatabase_from_firebase/'} )
I am expecting for a return of 0, confirming it worked, but instead I am getting the error results below:
TypeError: __init__() got an unexpected keyword argument 'status'
Full traceback is:
Traceback (most recent call last): File "C:/Users/Gaming/Firbase_setup/test.py", line 3, in from firebase_admin import db File "C:\Users\Gaming\Firbase_setup\venv\lib\site-packages\firebase_admin\db.py", line 33, in from firebase_admin import _http_client File "C:\Users\Gaming\Firbase_setup\venv\lib\site-packages\firebase_admin_http_client.py", line 32, in raise_on_status=False, backoff_factor=0.5) TypeError: init() got an unexpected keyword argument 'status'
回答1:
This is caused due to the outdated urllib3 package. I resolved this error with the following solution. You can try it as well.
Go to this file(Got this from the error you have given) -> C:\Users\Gaming\Firbase_setup\venv\lib\site-packages\firebase_admin_http_client.py
Comment the following lines from firebase_admin_http_client.py:
#from requests.packages.urllib3.util import retry
#DEFAULT_RETRY_CONFIG = retry.Retry(
#connect=1, read=1, status=4, status_forcelist=[500, 503],
#raise_on_status=False, backoff_factor=0.5)
Also change the init parameter as below in the same file:
def __init__(
self, credential=None, session=None, base_url='', headers=None,
retries=1):
回答2:
Upgrading requests to current version 2.22.0 worked for me.
As the previous answer suggests, some libraries are outdated and can cause this issue.
来源:https://stackoverflow.com/questions/56212844/how-to-fix-firebase-admin-error-typeerror-init-got-an-unexpected-keyword