如何针对特定用户ID而非登录用户操作?已知user.metadata.creationTime
获取特定用户ID的创建时间(以Firebase Auth为例)
要获取指定用户ID的creationTime,不能通过客户端SDK实现——出于安全限制,客户端只能访问当前登录用户的元数据。必须通过服务端的管理员SDK来查询目标用户的完整信息。
实现步骤(以Firebase Admin SDK为例)
- 确保已在服务端初始化Admin SDK(需要配置服务账号密钥)
- 调用
getUser(uid)方法获取目标用户的记录,从中提取metadata.creationTime
代码示例(Node.js)
const admin = require('firebase-admin'); // 初始化Admin SDK(替换为你的服务账号密钥路径) admin.initializeApp({ credential: admin.credential.cert('./service-account-key.json') }); async function fetchUserCreationTime(targetUid) { try { const userRecord = await admin.auth().getUser(targetUid); // 提取创建时间(ISO格式字符串,如"2024-05-20T08:15:30.000Z") const creationTime = userRecord.metadata.creationTime; console.log(`用户 ${targetUid} 创建于:${creationTime}`); return creationTime; } catch (err) { console.error('查询用户失败:', err.message); throw err; } } // 调用示例:传入目标用户ID fetchUserCreationTime('your-target-user-id');
补充说明
- 若使用其他身份服务(如Auth0、AWS Cognito),逻辑一致:通过服务端API传入用户ID查询用户详情,提取对应创建时间字段即可。
creationTime返回的是UTC时间的ISO字符串,可根据业务需求转换为本地时间格式。- 服务账号默认拥有读取用户信息的权限,无需额外配置IAM规则。
内容的提问来源于stack exchange,提问作者Sietse Gorris
相关产品推荐
相关产品推荐

