Firebase 管理员存储空间无法识别已初始化的应用



所以我们有一个令人难以置信的混乱局面。我们初始化firebase应用程序,然后尝试访问存储桶。下面是我们的代码:

from firebase_admin import credentials, initialize_app
cred = credentials.Certificate(app.config.get('GOOGLE_APPLICATION_CREDENTIALS'))
initialize_app(cred, {'storageBucket': app.config['STORAGE_BUCKET']}, 'high_sec')
from firebase_admin import storage
bucket = storage.bucket()

执行上述操作会抛出错误。下面是错误:

The default Firebase app does not exist. Make sure to initialize the SDK by calling initialize_app().

这没有意义。我们在调用函数之前立即初始化了应用程序,并抱怨没有这样做。最糟糕的是,这曾经有效。我们不确定是什么弄坏的。

有人知道这里发生了什么吗?

根据这篇文章,你应该在你的代码的全局范围内调用你的initialize_app()。不要通过任何参数来接受默认的服务帐户,该帐户应该具有读写Cloud Firestore数据库的权限。

我已经复制了你的错误,通过删除'high_sec',它工作得很好。对于代码:initialize_app(cred, {'storageBucket': app.config['STORAGE_BUCKET']})

我们通过将应用程序对象直接传递给bucket来解决这个问题。我们通过一步一步地对sdk进行逆向工程来解决这个问题。不知道这是不是最好的做法。这绝对不直观。

app = initialize_app(cred, {'storageBucket': app.config['STORAGE_BUCKET']}, 'high_sec')
from firebase_admin import storage
bucket = storage.bucket(app=app)

相关内容

最新更新