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实时数据库,它一直说项目不存在,或者它不包含活动的或数据库。我使用相同的google帐户创建了一个防火墙实时数据库,我不知道它为什么说没有数据库。谷歌云不支持Firebase的实时数据库吗?任何帮助都会得到强烈认可。
发布于 2021-09-20 11:09:13
您的问题似乎是将Firebase实时数据库和Firestore混为一谈。虽然您已经提到您正在使用Firebase实时数据库,但是您的python脚本是用来将数据导入Firestore的。请注意,Firestore和Firebase实时数据库是两个不同的数据库。
您收到的错误消息表明,该项目没有Firestore。因此,要解决错误,请转到Firebase控制台,并在Firestore中创建一个数据库。在创建Firestore数据库之后,添加一个名为“actors”的集合。您可以按照前面提到的步骤在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实时数据库的更多详细信息是这里。
发布于 2021-09-20 01:19:33
问题在于:
firebase_admin.initialize_app(cred,{
'databaseURL': 'url'
})
databaseURL
是对实时数据库的引用,而这似乎不足以让您的代码找到项目的Firestore数据库。如设置Python对Firestore的访问上的文档所示,您需要(也)传递项目ID,然后才能访问Firestore:
firebase_admin.initialize_app(cred, {
'projectId': project_id,
})
db = firestore.client()
https://stackoverflow.com/questions/69248201
复制相似问题