尝试在python中导入数据时找不到我的firebase实时数据库

2024-06-07 02:52:41 发布

您现在位置:Python中文网/ 问答频道 /正文

import pandas as pd
import firebase_admin
from firebase_admin import credentials, firestore

cred = credentials.Certificate("crt")
firebase_admin.initialize_app(cred,{
'databaseURL': 'url'
})

db = firestore.client()
actor_ref = db.collection('actors')

# Import data
df = pd.read_csv("./hw1_datasets/actor.csv")
tmp = df.to_dict(orient='records')
list(map(lambda x: actor_ref.add(x), tmp))

我运行这个脚本将csv导入我的Firebase实时数据库,它一直说该项目不存在,或者它不包含活动云数据存储或云Firestore数据库。我用同一个谷歌帐号创建了一个firebase实时数据库,我不知道为什么它说没有数据库。谷歌云不支持Firebase的实时数据库吗?我们将非常感谢您的帮助


Tags: csvimportref数据库dfdbadmintmp
2条回答

问题在于:

firebase_admin.initialize_app(cred,{
'databaseURL': 'url'
})

databaseURL是对实时数据库的引用,这似乎不足以让代码找到项目的Firestore数据库。如setting up Python access to Firestore上的文档所示,在访问Firestore之前,您(还)需要传递项目ID:

firebase_admin.initialize_app(cred, {
  'projectId': project_id,
})

db = firestore.client()

您的问题似乎混淆了Firebase实时数据库和Firestore。虽然您提到您正在使用Firebase实时数据库,但python脚本用于将数据导入Firestore。请注意,Firestore和Firebase实时数据库是两个不同的数据库

您收到的错误消息表明该项目没有Firestore数据库。因此,要解决此错误,请转到Firebase控制台并在Firestore中创建一个数据库。创建Firestore数据库后,添加一个名为“actors”的集合。您可以按照here中提到的步骤在Firebase控制台中创建Firestore数据库

如果要使用Firebase实时数据库,必须在python脚本中以不同的方式初始化它。您可以参考以下内容了解如何初始化Firebase实时数据库

首先,您必须从firebase_admin导入“db”,如下所示

from firebase_admin import db

然后,您必须通过获取serviceAccountKey.json文件来创建凭证对象,该文件可以在项目概述中生成>;Firebase控制台中的项目设置页面

cred = credentials.Certificate('path/to/serviceAccountKey.json')

接下来,必须按如下方式初始化数据库-

firebase_admin.initialize_app(cred, {
    'databaseURL': 'https://databaseName.firebaseio.com'
})

现在要访问Firebase实时数据库,您必须创建一个引用,如下所示

ref = db.reference('databaseName')

有关如何初始化Firebase实时数据库的更多详细信息,请参见here

要将数据读取并保存到Firebase实时数据库,您可以分别参考this documentthis document

相关问题 更多 >