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

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

我是 Firebase 的新手,我正在学习他们的在线教程。我正在尝试对我用几条记录创建的快速数据库进行身份验证。我收到错误:TypeError: init() 有一个意外的关键字参数 'status'

我已确保我的 urllib3 是最新的,并确认我的 firebase_Admin 是最新的。我检查了 json 文件的文件路径,并将数据库 URL 复制到其中。

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/'} )

我期望 return 为 0,确认它有效,但我得到以下错误结果:

TypeError: __init__() got an unexpected keyword argument 'status'

完整的追溯是:

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'

这是由于过时的 urllib3 包造成的。 我使用以下解决方案解决了此错误。你也可以试试

转到这个文件(从你给出的错误中得到这个)-> C:\Users\Gaming\Firbase_setup\venv\lib\site-packages\firebase_admin_http_client.py

评论 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)

同时在同一文件中更改 init 参数,如下所示:

def __init__(
        self, credential=None, session=None, base_url='', headers=None,
        retries=1):

将请求升级到当前版本 2.22.0 对我有用。

正如前面的回答所暗示的,一些库已经过时,可能会导致这个问题。

有时我会收到 超时 错误,以便解决

init更改为以下代码

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

卸载旧版本的请求

pip uninstall requests

并安装最新的

pip install requests