如何使用Rest API写入Firebase数据库?

时间:2018-08-10 17:47:25

标签: rest firebase firebase-realtime-database firebase-authentication python-requests

我正在尝试使用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)

我如何成功发出删除请求。

1 个答案:

答案 0 :(得分:1)

我认为auth应该作为查询参数发送,而不是作为请求正文的一部分发送。 Firebase REST API可能会忽略DELETE请求的主体。尝试在params=payload的调用中使用data=payload而不是requests.delete()