在colab中与python一起使用firestore
我正在尝试将colab中的firebase与Python一起使用。但是有一个无法解决的错误, 所以我需要一些帮助在colab中与python一起使用firestore,python,firebase,google-cloud-firestore,firebase-admin,google-colaboratory,Python,Firebase,Google Cloud Firestore,Firebase Admin,Google Colaboratory,我正在尝试将colab中的firebase与Python一起使用。但是有一个无法解决的错误, 所以我需要一些帮助 import firebase_admin from firebase_admin import credentials from firebase_admin import firestore cred = credentials.Certificate('/content/myKey.json') firebase_admin.initialize_app(cred) # e
import firebase_admin
from firebase_admin import credentials
from firebase_admin import firestore
cred = credentials.Certificate('/content/myKey.json')
firebase_admin.initialize_app(cred) # error in this line
db = firestore.client()
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.
我能为解决这个问题做些什么
我也发现了类似的答案,所以我尝试了很多技巧,如下所示
import firebase_admin
from firebase_admin import credentials
from firebase_admin import firestore
if not firebase_admin._apps:
cred = credentials.Certificate('/content/foodle-94e80-firebase-adminsdk-zr21t- f02504e9fb.json')
firebase_admin.initialize_app(cred)
else:
app = firebase_admin.get_app()
db = firestore.client(app) # new error in this line
但新的错误让我困惑
DefaultCredentialsError:无法自动确定凭据。请设置GOOGLE_应用程序_凭据或显式创建凭据并重新运行应用程序。有关更多信息,请参阅
我能做什么?看起来Firebase应用程序的默认实例正在某个地方初始化。创建默认实例时,它使用GOOGLE_应用程序_凭据,而不是手动传递的凭据。 您可以向脚本提供GOOGLE_应用程序_凭据,也可以忽略firebase应用程序的默认实例并创建一个显式命名的实例 要创建显式命名的应用程序,请更改代码以提供名称:
import firebase_admin
from firebase_admin import credentials
from firebase_admin import firestore
cred = credentials.Certificate('/content/myKey.json')
firebase_admin.initialize_app(credential=cred, name='myApp')
db = firestore.client()
要提供谷歌应用程序凭据并使用默认应用程序:
如果您正在从控制台运行python脚本,则可以通过运行
export-GOOGLE\u-APPLICATION\u-CREDENTIALS='/content/myKey.json'
在colab中,您需要将以下内容添加到脚本中:
import os
os.environ["GOOGLE_APPLICATION_CREDENTIALS"]="/content/myKey.json"
在此之后,您可以运行第二个示例
(要获取JSON的凭据,请选择您的firebase adminsdk服务帐户,单击“添加密钥”、“创建新密钥”,选择JSON作为选项并下载生成的文件。)看起来firebase应用程序的默认实例正在某个地方初始化。创建默认实例时,它使用GOOGLE_应用程序_凭据,而不是手动传递的凭据。 您可以向脚本提供GOOGLE_应用程序_凭据,也可以忽略firebase应用程序的默认实例并创建一个显式命名的实例 要创建显式命名的应用程序,请更改代码以提供名称:
import firebase_admin
from firebase_admin import credentials
from firebase_admin import firestore
cred = credentials.Certificate('/content/myKey.json')
firebase_admin.initialize_app(credential=cred, name='myApp')
db = firestore.client()
要提供谷歌应用程序凭据并使用默认应用程序:
如果您正在从控制台运行python脚本,则可以通过运行
export-GOOGLE\u-APPLICATION\u-CREDENTIALS='/content/myKey.json'
在colab中,您需要将以下内容添加到脚本中:
import os
os.environ["GOOGLE_APPLICATION_CREDENTIALS"]="/content/myKey.json"
在此之后,您可以运行第二个示例
(要获取JSON的凭据,请选择您的firebase adminsdk服务帐户,单击“添加密钥”、“创建新密钥”,选择JSON作为您的选项并下载生成的文件。)在我的例子中,它与
cred = credentials.Certificate("/content/drive/My Drive/Colab Notebooks/LALALA.json")
firebase_admin.initialize_app(cred)
在我的情况下,它与
cred = credentials.Certificate("/content/drive/My Drive/Colab Notebooks/LALALA.json")
firebase_admin.initialize_app(cred)