How to fix Firebase_Admin Error TypeError: __init__() got an unexpected keyword argument 'status'

Question:

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:UsersGamingFirbase_setupvenvlibsite-packagesfirebase_admindb.py”,
line 33, in from firebase_admin import _http_client File
“C:UsersGamingFirbase_setupvenvlibsite-packagesfirebase_admin_http_client.py”,
line 32, in raise_on_status=False, backoff_factor=0.5)
TypeError: init() got an unexpected keyword argument ‘status’

Asked By: killsburydouboy

||

Answers:

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:UsersGamingFirbase_setupvenvlibsite-packagesfirebase_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, timeout=300):
Answered By: Midhun Manohar

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.

Answered By: JohnAndrews

Some times i getting time out error so that to resolve that

Change init to below code

def __init__(
            self, credential=None, session=None, base_url='', headers=None,
            retries=DEFAULT_RETRY_CONFIG, timeout=DEFAULT_TIMEOUT_SECONDS):
Answered By: Balanagu Yashwanth

uninstall the older version of requests

pip uninstall requests

and install the latest one

pip install requests
Answered By: Sushang Agnihotri
Categories: questions Tags: ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.