因此,我试图创建一个Web应用程序,该应用程序使用Google App Engine主机托管,并具有多个API端点。我有一个Flask应用程序,用于为所有有效端点运行。网站托管成功,它呈现基本的HTML。问题是,每当我尝试从Firebase实时数据库中获取该特定端点的数据时,我得到一个错误500内部服务器错误。这是我试图连接到Firebase数据库的方式。
firebase_admin.initialize_app(cred, {
'databaseURL': f'https://{PROJECT_ID}-default-rtdb.firebaseio.com'
}}
每当我尝试在本地主机上本地运行相同的应用程序时,我都可以成功地将其添加到数据库中,这表明Firebase管理员设置正确,所有密钥都正确。我已经将我的网站URL添加为授权域,但现在仍然有效。我想问这是否可能,如果可能,那么最佳的操作方案是什么?
1条答案
按热度按时间but5z9lq1#
根据Firebase Admin SDK的文档,您不需要在
initialize_app()
中指定凭据或URL:初始化后,您可以使用Admin SDK完成以下类型的任务:
*读写实时数据库数据
AppEngine的默认服务帐户应已具有必要的权限:
对云服务的每个调用都需要进行身份验证和授权,包括从App Engine应用程序到其他云服务(如Cloud Storage)的调用。
默认情况下,App Engine应用对同一项目中的服务的调用是经过授权的。
如果服务帐户未经授权,则可以通过assigning in IAMthe pre-defined role
roles/firebase.admin
授予PROJECT_ID@appspot.gserviceaccount.com
对Firebase Realtime Database的访问权限。