通过电子邮件获取 uid

mar*_*nda 0 firebase firebase-authentication firebase-realtime-database

我在网络上使用 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
    }
}
Run Code Online (Sandbox Code Playgroud)

这个想法是用户可以创建新类别并与其他用户共享。

因此,用户可以创建一个类别,他将为该类别提供一个名称以及来自他想要共享该类别的人员的一系列电子邮件。

有没有办法通过前端用户提供的电子邮件从firebase身份验证中获取uid?

我的假设是,出于安全原因,我将无法在前端执行此操作,因此我必须创建一个“用户”表并对其进行维护,或者我可以创建一个云功能。

我的假设正确吗?如果是这样,您认为哪种方法会更优雅?

Fra*_*len 5

有一种方法可以通过电子邮件地址查找用户帐户,但只能在 Firebase Admin SDK 中查找。此 SDK 旨在用于受信任的环境,即您控制的系统或 Cloud Functions。如果这就是您要查找的内容,请在retrieving user data 中阅读有关它的更多信息

如果您希望在客户端上运行它,那么确实无法通过用户的电子邮件地址查找用户的 UID。在这种情况下,常见的方法确实是在数据库中创建映射。但请务必确保对这些数据的访问安全,否则您可能会泄露用户的所有电子邮件地址。