rest - 如何使用rest api写入firebase数据库?
问题描述
我正在尝试使用 rest api 从 firebase 数据库中删除一个节点。我可以读取数据库,但是当我尝试删除或写入它时,它给了我权限被拒绝错误。我正在使用 python requests 包进行休息调用。这是我的 firebase 数据库安全规则
{
"rules": {
".read": "auth.uid == 'foobar'",
".write":"auth.uid == 'foobar'"
}
}
我在firebase控制台中有一个用户->身份验证->用户uid为“foobar”的用户。这是发出删除请求的python代码
url='https://www.googleapis.com/identitytoolkit/v3/relyingparty/verifyPassword?key=<my-api-key>'
data={
"email": "my-email",
"password": "my-pass",
"returnSecureToken": "true"
}
contents = requests.post(url,data)
idToken= contents.json()["idToken"]
payload = {"auth":idToken}
#i also tried sending uid with payload
#payload={"auth":idToken,"uid":"foobar"}
url="https://my_app_id.firebaseio.com/Home01/.json";
contents=requests.delete(url,data=payload)
我怎样才能成功提出删除请求。
解决方案
我认为auth
应该作为查询参数发送,而不是作为请求正文的一部分。Firebase REST API 可能会忽略 DELETE 请求的正文。尝试在调用中使用params=payload
而不是.data=payload
requests.delete()
推荐阅读
- postgresql - Hasura 浏览器控制台给出错误“502 Bad Gateway”
- javascript - 如何在 html 中使用 javascript 为行和列设置备用颜色?
- awk - 将命令的输出与另一个命令的最后一个字段合并
- powerbi - Power BI + Snowflake SSO
- node.js - 如何在续集上更新或创建外键的子表后更新主表上的“updatedAt”
- java - 在 java 的选项卡中添加 onItemSelected
- php - 将数组作为函数参数并将其作为 PHP 中的普通变量获取
- laravel - 无法使用 Laravel Forge 连接域
- docker - 如何自动备份 MYSQL 数据库容器
- java - 如何在 Android 中使用 Flavors 更改应用程序颜色