【问题标题】:KeyError: 'databaseURL' while Firebase Authentication in PythonKeyError:'databaseURL',而 Python 中的 Firebase 身份验证
【发布时间】:2021-05-04 00:17:13
【问题描述】:

相信你做得很好。我是 firebase 新手,正在尝试进行用户身份验证。我已经安装了 pyrebase4 并在 firebase 控制台上创建了一个项目。我还启用了使用“电子邮件和密码”登录并尝试连接我的应用程序。以下是我正在尝试的代码:

    import pyrebase

#connect to firebase via key-value pair
firebaseConfig = {
    "apiKey": "xxxxxxxxxxxxxxxxxx",
    "authDomain": "xxxxxxxxxxx",
    "projectId": "xxxxxxxxxxx",
    "storageBucket": "xxxxxxxxxxxxxx",
    "messagingSenderId": "xxxxxxxxxxxxx",
    "appId": "xxxxxxxxxxxxxxxxxxxx",
    "measurementId": "G-5GCDEC526E"
}

#initialize the app
firebase = pyrebase.initialize_app(firebaseConfig)

#connect to firebase database
#db = firebase.database()
auth = firebase.auth()
#storage = firebase.storage()

#user login authentication
email = input("Enter your email: \n")
password = input("Enter your password: \n")
user = auth.create_user_with_email_and_password(email, password)
auth.get_account_info(user['idToken'])

我使用 VS Code 作为 IDE、Python 3.8 和 Ubuntu 操作系统。以下是我得到的错误:

python3 main.py
Traceback (most recent call last):
  File "main.py", line 15, in <module>
    firebase = pyrebase.initialize_app(firebaseConfig)
  File "/home/sonu/.local/lib/python3.8/site-packages/pyrebase/pyrebase.py", line 28, in initialize_app
    return Firebase(config)
  File "/home/sonu/.local/lib/python3.8/site-packages/pyrebase/pyrebase.py", line 36, in __init__
    self.database_url = config["databaseURL"]
KeyError: 'databaseURL'

你能帮我解决这个问题吗?提前致谢。

【问题讨论】:

    标签: javascript python database firebase firebase-realtime-database


    【解决方案1】:

    在你的配置对象ref中添加databaseURL

    【讨论】:

      【解决方案2】:

      正如错误所说。您的配置中缺少 databaseURL 属性。

      由于现在实时数据库不会在您创建新的 firebase 项目时自动创建,因此默认情况下不包含 databaseURL。 See also

      【讨论】:

        【解决方案3】:

        您可以在键 databaseURL 中添加一个空字符串,但是当您想使用实时数据库时要小心,您需要在 Python 代码中更新配置字典。

        因此,如果您没有或不需要使用实时数据库,您可以从这些配置开始:

        firebaseConfig = {
            "apiKey": "xxxxxxxxxxxxxxxxxx",
            "authDomain": "xxxxxxxxxxx",
            "projectId": "xxxxxxxxxxx",
            "storageBucket": "xxxxxxxxxxxxxx",
            "messagingSenderId": "xxxxxxxxxxxxx",
            "appId": "xxxxxxxxxxxxxxxxxxxx",
            "measurementId": "G-5GCDEC526E",
            "databaseURL": ""
        }
        

        如果您已经创建了实时数据库,也可以从这些配置开始:

        firebaseConfig = {
            "apiKey": "xxxxxxxxxxxxxxxxxx",
            "authDomain": "xxxxxxxxxxx",
            "projectId": "xxxxxxxxxxx",
            "storageBucket": "xxxxxxxxxxxxxx",
            "messagingSenderId": "xxxxxxxxxxxxx",
            "appId": "xxxxxxxxxxxxxxxxxxxx",
            "measurementId": "G-5GCDEC526E",
            "databaseURL": "https://fir-#######-rtdb.europe-##########.app/"
        }
        

        您可以在 Firebase 控制台的数据库查看器顶部找到您的数据库 URL。 [见下图]

        【讨论】:

          【解决方案4】:
          firebaseConfig = {
              "apiKey": "xxxxxxxxxxxxxxxxxx",
              "authDomain": "xxxxxxxxxxx",
              "projectId": "xxxxxxxxxxx",
              "storageBucket": "xxxxxxxxxxxxxx",
              "messagingSenderId": "xxxxxxxxxxxxx",
              "appId": "xxxxxxxxxxxxxxxxxxxx",
              "measurementId": "G-5GCDEC526E",
              "databaseURL":"your database url"
          }
          

          它位于您保存的数据上方的实时数据库选项卡中。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2020-04-01
            • 2022-12-10
            • 2019-03-23
            • 1970-01-01
            • 2016-09-26
            • 2017-11-27
            相关资源
            最近更新 更多