通过电子邮件获取uid

时间:2018-07-13 17:06:56

标签: firebase firebase-realtime-database firebase-authentication

我正在网上使用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?

我的假设是出于安全原因,我将无法在前端执行此操作,因此我将不得不创建一个“用户”表并进行维护,否则我可能会创建一个云函数。

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

1 个答案:

答案 0 :(得分:4)

有一种方法可以通过用户帐户的电子邮件地址查找该用户帐户,但只能在Firebase Admin SDK中。该SDK适用于受信任的环境(即您控制的系统或Cloud Functions)。如果这是您要查找的内容,请在retrieving user data中详细了解。

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