我试图使用rest api从firebase数据库中删除一个节点。我可以读取数据库,但是当我尝试删除或写入它时,它会给我许可拒绝错误。我正在使用python请求包来进行休息调用。这是我的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()
。