[英]Firebase Auth Built-in identity
我正在构建一个 web 平台,以使用 Firebase Auth 和 Firestore 将学习者与导师联系起来。 我将学习者的用户信息存储在 Firestore 集合中,将导师的信息存储在另一个集合中。 我正在构建一个 function,它可以在登录时检测客户是学习者还是导师。
我正在考虑的一种解决方案是使用 UID 查询用户在哪个集合中找到。 虽然,这是一个潜在的解决方案。 但听起来它需要大量的事务,如果 collections 变大,可能运行时间很长。 我还能做些什么吗? 我想知道是否可以使用身份验证为每个用户构建嵌入式身份以区分“导师”和“学习者”? 那么用户每次登录,我们马上就知道身份了?
我知道在解码的身份验证令牌中,有如下信息:
{ iss: 'https://securetoken.google.com/xxxx',
aud: 'xxxx',
auth_time: 1569886929,
user_id: 'aB03',
sub: 'aB03',
iat: 1570582588,
exp: 1570586188,
email: 'aa@gmail.com',
email_verified: false,
firebase:
{ identities: { email: [Array] }, sign_in_provider: 'password' },
uid: 'aa3' }
我可以利用其中之一来构建我想要的东西吗?
非常感谢您的时间和帮助。
既然您提到“收藏”,我假设您正在寻找使用 Firestore。 在这种情况下:集合的大小对查询性能没有影响。 无论集合中有 1000 个用户文档、100 万个甚至 10 亿个用户文档,查询单个用户文档所需的时间始终相同。
除此之外,您还可以将用户的类型存储在 ID 令牌中(这是您在问题中显示的内容)。 这称为“自定义声明”,因为您正在将应用的自定义属性添加到信息中。 您需要从受信任的环境(您的开发机器、您控制的服务器或云功能)中执行此操作,因为我假设用户不应该能够更改自己的角色。 有关这方面的更多信息,请参阅有关使用自定义声明控制访问的文档。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.