如何在Postman中通过UID或邮箱密码认证Firebase实时数据库REST API
解决Firebase实时数据库Postman请求权限问题及认证误区
一、正确传递用户认证信息以通过安全规则
你的安全规则要求仅用户本人可访问自己的users/$userId节点,需先获取该用户的Firebase ID Token,再在请求中携带认证信息:
获取用户ID Token
调用Firebase身份验证登录API,发送POST请求至:https://identitytoolkit.googleapis.com/v1/accounts:signInWithPassword?key=你的Firebase项目API密钥请求Body采用JSON格式,填写Firebase Auth中创建的普通用户邮箱和密码(非控制台Admin成员账号):
{ "email": "user@example.com", "password": "userpassword", "returnSecureToken": true }响应结果里的
idToken字段即为所需的认证令牌。在Postman中携带Token
在GET请求的请求头中添加:Authorization: Bearer 刚才获取的idToken值同时确保请求URL为
https://你的数据库地址/users/该用户的UID.json,此时Firebase会自动识别auth.uid,匹配规则后即可正常访问。
二、关于Firebase Admin角色与Basic Auth的误区
- 项目设置中添加的「Firebase Admin」角色属于控制台管理账号,这类账号无可用作Basic Auth的登录密码,也无法直接用于访问实时数据库API。
- Firebase实时数据库不支持通过Basic Auth传递邮箱密码完成认证,必须使用上述身份验证API获取Token。
- 若需以Admin权限访问全量数据,可使用Firebase服务账号生成自定义Token,或在请求头中携带服务账号生成的ID Token(可通过Admin SDK或Firebase CLI生成)。
内容的提问来源于stack exchange,提问作者zac
相关产品推荐
相关产品推荐

