Этот документ от Firebase содержит информацию о том, как написать и развернуть облачную функцию в Nodejs, но может ли кто-нибудь помочь мне получить этот самый документ на python.Я запутался, так как я новичок в этой области?
Однако я попытался написать свою облачную функцию, которая выглядит следующим образом, но постоянно получаю некоторые ошибки, о которых я собираюсь упомянуть ниже:
import json
import firebase_admin
from firebase_admin import credentials
from firebase_admin import db
def go_firebase(request):
cred = credentials.Certificate('firebasesdk.json')
firebase_admin.initialize_app(cred, {
'databaseURL' : 'https://firebaseio.com/'
})
ref=db.reference('agents')
snapshot = ref.order_by_key().get()
for key, val in snapshot.items():
kw=val
dictfilt = lambda x, y: dict([ (i,x[i]) for i in x if i in set(y) ])
wanted_keys = ("address","name","phone","uid")
result = dictfilt(kw, wanted_keys)
data= json.dumps(result, sort_keys=True)
return data
И после развертывания функции с помощью триггера http в журнале появляется сообщение:
severity: "ERROR"
textPayload: "Traceback (most recent call last):
File "/env/lib/python3.7/site-packages/google/cloud/functions/worker.py", line 313, in run_http_function
result = _function_handler.invoke_user_function(flask.request)
File "/env/lib/python3.7/site-packages/google/cloud/functions/worker.py", line 215, in invoke_user_function
return call_user_function(request_or_event)
File "/env/lib/python3.7/site-packages/google/cloud/functions/worker.py", line 208, in call_user_function
return self._user_function(request_or_event)
File "/user_code/main.py", line 6, in go_firebase
cred = credentials.Certificate('firebasesdk.json')
File "/env/lib/python3.7/site-packages/firebase_admin/credentials.py", line 83, in __init__
with open(cert) as json_file:
FileNotFoundError: [Errno 2] No such file or directory: 'firebasesdk.json'
Понятия не имею, почему он говорит, что файл не найден, потому что у меня есть этот файл json втот же путь, где я выполняю функцию!Я использую облачную оболочку Google!Кто-нибудь может быть достаточно любезен, чтобы сказать мне, где я иду не так?