我是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/'} )
我期望返回0,确认它可以正常工作,但是我在下面得到了错误结果:
TypeError: __init__() got an unexpected keyword argument 'status'
完整回溯是:
回溯(最近通话最近):文件 第3行中的“ C:/Users/Gaming/Firbase_setup/test.py” firebase_admin导入数据库文件 “ C:\ Users \ Gaming \ Firbase_setup \ venv \ lib \ site-packages \ firebase_admin \ db.py”, 第33行,从firebase_admin导入_http_client文件 “ C:\ Users \ Gaming \ Firbase_setup \ venv \ lib \ site-packages \ firebase_admin_http_client.py”, 第32行,raise_on_status = False,backoff_factor = 0.5) TypeError: init ()获得了意外的关键字参数'status'
答案 0 :(得分:6)
将请求升级到当前版本2.22.0
对我来说很有效。
如先前的答案所示,某些库已过时,可能导致此问题。
答案 1 :(得分:1)
这是由于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 :(得分:1)
卸载旧版本的请求
pip uninstall requests
并安装最新的
pip install requests
答案 3 :(得分:0)
有时候我会得到超时错误,以便解决该问题
将init更改为以下代码
def init ( 自我,凭证=无,会话=无,base_url ='',标头=无, retries = DEFAULT_RETRY_CONFIG,超时= DEFAULT_TIMEOUT_SECONDS):