【问题标题】:connect to firebase using API key and application username password使用 API 密钥和应用程序用户名密码连接到 Firebase
【发布时间】:2021-09-15 05:32:42
【问题描述】:

我使用管理 SDK 处理来自应用程序和后端服务器的 firebase 连接。

Firebase 管理员 SDK 使用服务帐号密钥连接到 Firebase 后端。 这里我的用例是:我有一个将被客户端使用的 python 包,这里我不想使用服务帐户密钥和管理 SDK。我想使用 API 密钥,如果用户输入应用程序的有效用户名和密码(假设用户已经注册),用户将可以访问 firebase 后端。 (显然根据安全规则)

我找不到使用 API 密钥和来自 python 脚本的应用程序用户名/密码来访问 Firebase 后端的方法。如果有人知道,请帮助我。

【问题讨论】:

    标签: python firebase firebase-authentication


    【解决方案1】:

    Firebase 为 Python 提供的 Admin SDK 仅适用于受信任的环境,并且不允许使用用户名/密码登录。使用 Admin SDK 的所有代码都使用管理权限访问 Firebase,因此它不适合您的用例。 Firebase 本身不提供用于使用 Python 进行客户端访问的 SDK。因此,Firebase 提供的唯一选择是从您的代码中调用 REST API

    有一个名为Pyrebase 的第三方库允许您sign in users(通过包装上面提到的REST API):

    # Get a reference to the auth service
    auth = firebase.auth()
    
    # Log the user in
    user = auth.sign_in_with_email_and_password(email, password)
    

    【讨论】:

    • 感谢您的帮助,REST API 方式对我有用。使用 rest api 我获得了 ApiKey (jwtToken) 和刷新令牌。然后授权使用它的下一个请求。这个库也是不错的选择,但后来我想使用这个库不支持的 facebook/gmail/github 等登录。再次感谢您。
    【解决方案2】:

    如果您想使用 API 密钥控制后端访问 - 您不能。

    与通常使用 API 密钥的方式不同,Firebase 服务的 API 密钥不用于控制对后端资源的访问;这只能通过 Firebase 安全规则(控制哪些用户可以访问资源)和应用检查(控制哪些应用可以访问资源)来完成。

    根据docs

    【讨论】:

    • 是的,为了控制后端访问,我将使用安全规则。但在这里我想做典型的firebase应用程序所做的事情。我们向应用程序提供 API 密钥,然后用户从中登录,然后该用户可以访问 firestore(比如创建帖子)。我的要求是,我想从 python 代码而不是应用程序代码(web/android/ios)做类似的事情
    • 哦,好吧,我想我理解你。我以为你想要别的东西。
    • 在python应用中使用firebase身份验证来获取用户。
    • @HarisWilson,没错,你知道怎么做吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-18
    • 1970-01-01
    • 2015-03-27
    • 2019-05-08
    • 1970-01-01
    • 1970-01-01
    • 2019-09-03
    相关资源
    最近更新 更多