Объект 'function' не имеет атрибута 'collection'
Я новичок в google firestore, я следовал их документации, чтобы создать соединение с базой данных:
import firebase_admin
from firebase_admin import credentials
from firebase_admin import firestore
cred = credentials.Certificate("serviceAccountKey.json")
firebase_admin.initialize_app(cred)
db = firestore.client
когда я запускаю вышеприведенный код один раз, все нормально, но еще один раз он выдает ошибку:
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
Input In [2], in <cell line: 5>()
3 from firebase_admin import firestore
4 cred = credentials.Certificate("serviceAccountKey.json")
----> 5 firebase_admin.initialize_app(cred)
6 db = firestore.client
File ~\anaconda3\envs\simulationtrackit\lib\site-packages\firebase_admin\__init__.py:71, in initialize_app(credential, options, name)
68 return app
70 if name == _DEFAULT_APP_NAME:
---> 71 raise ValueError((
72 'The default Firebase app already exists. This means you called '
73 'initialize_app() more than once without providing an app name as '
74 'the second argument. In most cases you only need to call '
75 'initialize_app() once. But if you do want to initialize multiple '
76 'apps, pass a second argument to initialize_app() to give each app '
77 'a unique name.'))
79 raise ValueError((
80 'Firebase app named "{0}" already exists. This means you called '
81 'initialize_app() more than once with the same app name as the '
82 'second argument. Make sure you provide a unique name every time '
83 'you call initialize_app().').format(name))
ValueError: The default Firebase app already exists. This means you called initialize_app() more than once without providing an app name as the second argument. In most cases you only need to call initialize_app() once. But if you do want to initialize multiple apps, pass a second argument to initialize_app() to give each app a unique name.
проблема в том, что мне нужно запустить его на Django, поэтому я сделал следующее:
import firebase_admin
from firebase_admin import credentials
from firebase_admin import firestore
cred = credentials.Certificate("serviceAccountKey.json")
try:
firebase_admin.initialize_app(cred)
except ValueError:
pass
db = firestore.client
все прошло нормально без ошибок, затем я столкнулся со следующей ошибкой при выполнении следующего кода:
db.collection('signal').get()
ошибка:
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
Input In [4], in <cell line: 1>()
----> 1 db.collection('signal').get()
AttributeError: 'function' object has no attribute 'collection'
первое, что я сделал в jupyter notebook, это перезапустил ядро, оно заработало, когда я добавил его в django, оно выдало мне ту же ошибку
AttributeError: 'function' object has no attribute 'collection'
я попробовал это обратно на jupyter notebook не работает как раньше ..
Я вернулся к документации по firestore-admin, но не смог найти способ...