Запись в 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.

Вернуться на верх