Firebase实时数据库规则:如何查询UID所属用户及规则作用?
Firebase实时数据库规则相关问题解答
一、规则的具体作用
- 该规则为数据库内的
people节点设置了严格的读写权限控制:- 读取权限:仅当登录用户的Firebase认证UID精确匹配
AIza...时,才能读取people节点下的所有数据;其他用户无法访问该节点的任何内容。 - 写入权限:仅当登录用户的Firebase认证UID精确匹配
AIza...时,才能对people节点执行新增、修改、删除等写入操作;其他用户没有任何修改该节点数据的权限。 - 这里的
auth.uid是Firebase Auth为每个登录用户分配的唯一标识,规则通过对比这个标识与指定字符串,实现了单用户独占people节点权限的效果。
- 读取权限:仅当登录用户的Firebase认证UID精确匹配
二、查询该UID对应的用户方法
1. 通过Firebase控制台查询
作为项目管理员,直接在控制台操作:
- 打开Firebase控制台并进入目标项目
- 点击左侧菜单栏的「认证」选项
- 在用户列表顶部的搜索框中输入
AIza...,即可找到匹配UID的用户,查看其邮箱、创建时间等信息。
2. 通过代码查询(后端/管理端)
如果需要通过代码获取该用户信息,需使用Firebase Admin SDK(仅适用于后端或拥有管理权限的环境),示例代码(Node.js):
const admin = require("firebase-admin"); admin.initializeApp(); admin.auth().getUser("AIza...") .then((userRecord) => { console.log("用户详情:", { uid: userRecord.uid, email: userRecord.email, displayName: userRecord.displayName, createdAt: userRecord.metadata.createdAt }); }) .catch((error) => { console.error("查询用户失败:", error); });
注意:前端客户端无法直接调用此接口,因为普通用户没有查询其他用户信息的权限,必须在后端使用服务账号密钥进行认证后才能执行。
内容的提问来源于stack exchange,提问作者Nick
相关产品推荐
相关产品推荐

