【问题标题】:Google Cloud Functions Firebase Error The default Firebase app already existsGoogle Cloud Functions Firebase 错误 默认 Firebase 应用已存在
【发布时间】:2020-03-25 15:57:16
【问题描述】:

我正在使用 Google Cloud Functions 写入 Firebase 实时数据库(不是 Firestore)。

我在第二次(第二次)执行云功能时不断收到错误消息。第一次没问题。但总是在第 2 次和第 3 次及以后失败。

错误消息:“默认 Firebase 应用已经存在。这意味着您多次调用了 initialize_app(),而没有提供应用名称作为第二个参数。”

这是我的代码:

import firebase_admin
from firebase_admin import db

def my_function(request):

    firebase_admin.initialize_app()
    firebase_db_path = "/some_path"
    ref = db.reference(path = firebase_db_path, app=None, url = "https://blah-blah.firebaseio.com/")
    ref.set(json_data)

我可以通过使用 if-else 块包装初始化来避免错误,但不知何故,我觉得这个实现很混乱(不是很优雅)。还有比这更好的方法吗?

if not firebase_admin._apps:
    firebase_admin.initialize_app()

【问题讨论】:

    标签: python-3.x firebase firebase-realtime-database google-cloud-functions


    【解决方案1】:

    正如错误所说:

    默认 Firebase 应用已存在。这意味着您在没有提供应用名称作为第二个参数的情况下多次调用了 initialize_app()。

    您只需调用一次initialize_app(),因为它只需要初始化一次。

    最好的解决办法是在my_function()之外写firebase_admin.initialize_app()

    【讨论】:

    • 太棒了!它工作大声笑。对我来说有点愚蠢,没想到这一点。
    猜你喜欢
    • 2017-11-19
    • 2018-09-14
    • 2018-06-11
    • 2020-06-14
    • 2019-02-04
    • 1970-01-01
    • 1970-01-01
    • 2018-06-17
    • 1970-01-01
    相关资源
    最近更新 更多