Firebase实时数据库操作报错Could not parse auth token如何解决?
问题原因
错误提示Could not parse auth token的核心原因是你调用set方法时传入的第二个参数类型错误:你传了用户的localId(即用户uid),但此处要求传入的是用户登录后返回的ID令牌(idToken),不是uid。
修复方案
从登录返回的user对象里取出idToken字段,替换原来传入的user['localId']即可,修改后的代码如下:
user = auth.sign_in_with_email_and_password('email', 'password') # 第二个参数传入idToken而不是localId database.child('users').child(user['localId']).set("nahid", user['idToken'])
逻辑说明
- Firebase实时数据库的安全规则中
auth != null校验的是传入的令牌是否合法有效,规则中用到的auth.uid是Firebase自动从你传入的有效idToken里解析得到的uid值,不需要你手动把uid当作认证令牌传入。 - 你之前请求URL里
auth=参数后跟随的是uid,不符合Firebase的认证要求,只有传入合法JWT格式的idToken才能通过权限校验。
内容的提问来源于stack exchange,提问作者Nahid Khan
相关产品推荐
相关产品推荐

