我试图在我的firebase实时数据库中保存数据使用这个规则:
{
"rules": {
"users": {
"$uid": {
// Allow only authenticated content owners access to their data
".read": "auth != null && auth.uid == $uid",
".write": "auth != null && auth.uid == $uid",
},
},
},
}
我需要创建users的子元素,并将其命名为该用户的uid。所以,我这样做:
user=auth.sign_in_with_email_and_password('email', 'password')
database.child('users').child(user['localId']).set("nahid",user['localId'])
但是当我运行这个时,我得到这个错误:
requests.exceptions.HTTPError: [Errno 401 Client Error: Unauthorized for url: https://khelobd-6f730-default-rtdb.firebaseio.com/users/7Km7srPfqqccZwa0On5i2QaJDUi2.json?auth=7Km7srPfqqccZwa0On5i2QaJDUi2] {
"error" : "Could not parse auth token."
}
我该如何解决这个问题?
?auth=
参数似乎不是用户的Firebase ID令牌,而是UID本身。尝试将set()
中的user['localId']
更改为user['idToken']
:
user=auth.sign_in_with_email_and_password('email', 'password')
database.child('users').child(user['localId']).set("nahid",user['idToken'])
# ^^^