【问题标题】:How to Initialize Firebase Admin SDK in Cloud Function (Python)如何在 Cloud Function (Python) 中初始化 Firebase Admin SDK
【发布时间】:2021-05-17 23:35:21
【问题描述】:

我在这里发现了一个类似的问题,但它是针对 JavaScript 的,我使用的是 Python。我正在尝试使用 Firebase-Admin SDK,以便可以在我的云功能中验证 Firebase 身份验证 id_tokens。在我的 requirements.txt 中,我包含了 firebase-admin,我的 main.py 文件如下所示:

from firebase_admin import auth
from firebase_admin import credentials
def returnSQLresponse(request):
    default_app = firebase_admin.initialize_app()
    headers = request.headers
    if headers and 'Authorization' in headers:
        id_token = headers['Authorization']
    decoded_token = auth.verify_id_token(id_token)
    uid = decoded_token['uid'] 

上面的代码可能还有其他问题,但我的主要问题是我收到错误“in returnSQLresponse default_app = firebase_admin.initialize_app() NameError: name 'firebase_admin' is not defined”。如何在 Python 中初始化 Firebase Admin SDK,以便验证此令牌?我尝试按照此处的指南进行操作:https://firebase.google.com/docs/auth/admin/verify-id-tokens#verify_id_tokens_using_the_firebase_admin_sdk。本指南将我带到现在的位置。

【问题讨论】:

  • ConnorWilliams@ 我发布的答案与您收到的特定 NameError: 错误消息有关。如果您对verify_id_token 错误消息的使用有任何其他问题,我强烈建议您开新帖。

标签: python google-cloud-platform firebase-authentication google-cloud-functions


【解决方案1】:

请注意,您只导入了 authcredentials 模块,而未能导入 firebase_admin 模块本身,因此您得到:

NameError:名称“firebase_admin”未定义

当尝试通过调用来初始化应用程序时:

...
default_app = firebase_admin.initialize_app()
...

确保 firebase-admin 已添加到您的 requirements.txt 文件中,并按以下方式进行导入:

import firebase_admin
import firebase_admin.auth as auth
import firebase_admin.credentials as credentials


def returnSQLresponse(request):
    default_app = firebase_admin.initialize_app()
    ...

应该清除NameError错误信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-23
    • 2021-07-19
    • 2020-09-11
    • 1970-01-01
    • 2020-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多