POSTMAN正常 Flutter调用Firebase REST Auth获idToken无效无法访问实时数据库
问题根因
你的Flutter登录请求中,提交给Firebase认证接口的必填参数拼写错误:你将returnSecureToken写成了returnSecureToke(末尾缺失字母n)。
Firebase Identity Toolkit接口会直接忽略传入的未知/拼写错误参数,不会抛出请求错误,但缺失returnSecureToken: true的配置时,接口返回的是不完整的短idToken,没有携带Firebase权限校验需要的完整认证声明,因此请求实时数据库时,无法通过auth != null的规则校验。
解决方案
- 修正登录请求的参数拼写,修改代码中的
authData结构体:
final authData = { "email": email, "password": password, // 将拼写错误的 returnSecureToke 改为正确的 returnSecureToken "returnSecureToken": true };
- 修正后重新发起登录请求,此时返回的idToken长度会和Postman返回的一致,携带完整的认证信息,将该token带入实时数据库请求的
auth参数即可正常访问数据。
内容的提问来源于stack exchange,提问作者Lean966
相关产品推荐
相关产品推荐

