使用Pyrebase对Firebase数据库的权限被拒绝

时间:2019-03-17 04:59:40

标签: python-3.x firebase firebase-realtime-database firebase-authentication pyrebase

我已经成功注册了一个用户,并在他们在相同请求中全部注册之后不久就对其进行了正确签名。同样在我的请求中,我尝试使用python软件包Pyrebase将用户信息存储在Firebase数据库中。

我已经在我的flask应用程序中正确初始化了我的firebase应用程序以及firebase数据库

Subject

我正在创建这本词典

ReplaySubject

并将其传递到应该(或者至少我认为确实如此)的set函数中,将JSON对象保存到Firebase数据库中。

config = { "apiKey": "apikey", "authDomain": "proj.firebaseapp.com", "databaseURL": "https://proj.firebaseio.com", "storageBucket": "proj.appspot.com", "messagingSenderId": "930158028418", "serviceAccount.json": "path/to/theServiceAccountStuff.json" } app = Flask(__name__) firebase = pyrebase.initialize_app(config) auth = firebase.auth() firedb = firebase.database()

我试图将用户存储在“用户”下,然后使用自定义键(即他们的localId)将他们全部分类。

由于某种原因,每次我碰到上面的代码行时,我都会得到一个错误提示

userInfo = {"email": email, "password": password, "stripeID": customer.id, "subscriptionID": subID,"subscription": "active", "startdate": "Today bro"}

这些是我在firebase中的数据库规则

enter image description here

我缺少什么吗?我什至更进一步地删除了所有规则,以便任何人都可以访问它,并且我还输入了虚拟数据,以查看其是否有效。虚拟数据是可能的,因为我是手动输入所有信息。

2 个答案:

答案 0 :(得分:1)

您正尝试使用Pyrebase写入Firebase实时数据库,但是您的项目数据库已配置为使用Cloud Firestore。

这些数据库不同。

如果您在托管服务上使用Python,请考虑切换到Firebase Admin SDK for Python。当您使用服务帐户时,这就是方法。这也使您可以制作choice between using Cloud Firestore and the Realtime Database

如果您在客户端设备上使用Python,即使它是本地Web服务器,出于安全原因,也不应使用服务帐户,而应选择客户端身份验证。如果您希望使用Pyrebase,则在撰写本文时,需要使用屏幕快照中“数据库”一词旁边的下拉菜单,将项目的数据库切换为使用实时数据库。这是因为Cloud Firestore当前没有Pyrebase用作其后端的REST API。有关更多信息,请参见Firebase Realtime Database documentation

答案 1 :(得分:0)

为我工作:

Firebase控制台->实时数据库->规则

编辑规则: { “规则”:{ “ .read”:“ true”, “ .write”:“ true”, } }