我收到以下错误:
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.
如何检查默认的Firebase应用程序是否已在python中初始化?
Pan*_*olo 15
最好的方法是控制您的应用工作流程,因此初始化仅调用一次。但是当然,独立代码也是一件好事,因此您可以采取以下操作来避免该错误:
import firebase_admin
from firebase_admin import credentials
if (not len(firebase_admin._apps)):
cred = credentials.Certificate('path/to/serviceAccountKey.json')
default_app = firebase_admin.initialize_app(cred)
Run Code Online (Sandbox Code Playgroud)
小智 8
我发现以下内容对我有用。
对于默认应用程序:
import firebase_admin
from firebase_admin import credentials
if firebase_admin._DEFAULT_APP_NAME in firebase_admin._apps:
# do something.
Run Code Online (Sandbox Code Playgroud)
我一直在一个命名应用程序中以这种方式使用它:
import firebase_admin
from firebase_admin import credentials
if 'my_app_name' not in firebase_admin._apps:
cred = credentials.Certificate('path/to/serviceAccountKey.json')
firebase_admin.initialize_app(cred, {
'databaseURL': 'https://{}.firebaseio.com'.format(project_id),
'storageBucket': '{}.appspot.com'.format(project_id)}, name='my_app_name')
Run Code Online (Sandbox Code Playgroud)
我使用这个 try / except 块来处理应用程序的初始化
try:
app = firebase_admin.get_app()
except ValueError as e:
cred = credentials.Certificate(CREDENTIALS_FIREBASE_PATH)
firebase_admin.initialize_app(cred)
Run Code Online (Sandbox Code Playgroud)
在构造函数中初始化应用程序
cred = credentials.Certificate('/path/to/serviceAccountKey.json')
firebase_admin.initialize_app(cred)
Run Code Online (Sandbox Code Playgroud)
然后在你的方法中你调用
firebase_admin.get_app()
Run Code Online (Sandbox Code Playgroud)
https://firebase.google.com/docs/reference/admin/python/firebase_admin
| 归档时间: |
|
| 查看次数: |
5737 次 |
| 最近记录: |