Запись в Firestore с помощью Firebase Admin SDK приводит к зависанию приложения
Я пытаюсь использовать Firebase Admin SDK в приложении Django, используя сервисную учетную запись. Я следовал инструкциям согласно официальной документации. Однако приложение застревает на том этапе, когда Firebase Admin пытается выполнить OAuth2 с помощью Google APIs. Мой код выглядит следующим образом:
import firebase_admin
from firebase_admin import credentials
from firebase_admin import firestore
cred = credentials.Certificate(key_path)# path to serviceAccountKey
firebase_admin.initialize_app(cred)
db = firestore.client()
doc_ref = db.collection(u'users').document(u'alovelace')
# The following causes the app to freeze
doc_ref.set({
u'first': u'Ada',
u'last': u'Lovelace',
u'born': 1815
})
Последнее сообщение, отображаемое в журналах, следующее:
2022-07-06 06:23:38,519 DEBUG Making request: POST https://oauth2.googleapis.com/token
После этого сообщения приложение замирает без дополнительной информации. Есть идеи, почему это происходит?
Вы не "следовали инструкциям", которые показывают, что второй аргумент требует projectId
:
firebase_admin.initialize_app(cred, {
'projectId': project_id,
})
Проблема была решена при выполнении кода с использованием задачи Celery (другой поток). Причина проблемы, по-видимому, заключается в том, что приложение Django выполняется на сервере Socket.IO.