我想从我的移动应用程序中调用一个后端函数。但是,这个后端函数应该用python编写。这个函数应该可以直接从我的移动应用程序调用,它应该访问firebase,做一些计算并返回结果(理想情况下,只有当用户通过身份验证...)。经过一番搜索,我发现https request可能是完成此操作的正确方法。
但是如何在python中为firebase编写https请求呢?有没有人能给我指点一些代码示例或教程?我只找到了一个关于如何编写http cloud functions for google cloud的教程...
发布于 2020-05-14 21:19:40
开尔文的回答给我指明了正确的方向。然而,python代码(作为一个最小的工作示例)可能如下所示:
from flask import jsonify
import firebase_admin
from firebase_admin import auth
# Initialize the app without credentials, as the function gets it from context
firebase_admin.initialize_app()
def verifyRequest(request):
authorization = request.headers.get('Authorization')
token = authorization.split('Bearer ')[1]
try:
# This will fail in every situation BUT successful authentication
decode_token = auth.verify_id_token(id_token=token)
except Exception as e:
print('Authorization failed')
print(e)
return jsonify({
'data': {
'status': 'Authorization failed'
}})
print('Authorization suceeded')
return jsonify({
'data': {
'status': 'Authorization succeeded'
}})
请注意,当身份验证失败时,函数auth.verify_id_token()
will raise an error。
您可以通过gcode和以下命令上传此文件:
gcloud functions deploy verifyRequest --runtime python37 --trigger-http --project <YourProjectID>
发布于 2020-04-29 21:55:04
不幸的是,firebase云函数上没有Python选项,reference目前只能使用Javascript & Typescript。但是,如果您仍然想使用Python,那么可以使用Google Cloud Function。
firebase和云功能基本上是一样的,firebase就像是现有Google cloud Functions基础设施上的附加组件。事实是,只有云函数,要使用它,你必须使用gcloud或firebase CLI编写和部署。
https://stackoverflow.com/questions/61511801
复制