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
我是 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