我正在网上使用Firebase身份验证,我有一个与此类似的数据库:
categories: {
c1: {
name: "Category 1,
},
c2: {
name: "Category 2,
},
c3: {
name: "Category 3,
}
}
categoryOwners: {
//u1 and u2 are uids generated by firebase authentication
u1: {
c1: true,
c3: true
}
u2: {
c1: true,
c2: true
}
}
想法是用户可以创建新类别并与其他用户共享。
因此,用户可以创建一个类别,他将为该类别提供名称,并提供他想共享该类别的人的电子邮件。
是否可以通过前端用户提供的电子邮件从Firebase身份验证中获取uid?
我的假设是出于安全原因,我将无法在前端执行此操作,因此我将不得不创建一个“用户”表并进行维护,否则我可能会创建一个云函数。
我的假设正确吗?如果是,您认为哪种方法会更优雅?
答案 0 :(得分:4)
有一种方法可以通过用户帐户的电子邮件地址查找该用户帐户,但只能在Firebase Admin SDK中。该SDK适用于受信任的环境(即您控制的系统或Cloud Functions)。如果这是您要查找的内容,请在retrieving user data中详细了解。
如果您希望在客户端上运行它,那么确实无法通过用户的电子邮件地址查找用户的UID。在这种情况下,通常的方法确实是在数据库中创建映射。不过,请务必确保对这些数据的访问安全,否则您可能会泄漏用户的所有电子邮件地址。