如何修复Firebase_Admin错误TypeError:__init __()获得了意外的关键字参数'status'

时间:2019-05-19 23:30:16

标签: python firebase-admin

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

4 个答案:

答案 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):