首页 > 解决方案 > 关于 Firebase 身份验证标识符(Android)的问题

问题描述

我是一名新手 Android 开发人员。我正在对我的应用程序进行身份验证。我在 Firebase 身份验证下有三个问题。

  1. 给定具有 Firebase UID 的注册用户,有没有办法在不更改 Firebase 框架下的 UID 的情况下从一个标识符更改为另一个标识符?例如,从电话号码 +852 23334444 到 +852 56648999,或从电话号码 +852 23334444 到电子邮件 abc@gmail.com。

  2. 给定一个具有 Firebase UID 并以电话号码 +852 23334444 作为标识符的注册用户,我可以在 Firebase 框架下将另一个电话号码 +852 56648999 分配给同一个 UID 吗?

  3. 对于以两个电话号码作为标识符的两个 firebase UID,我可以将这两个 UID 分组到 firebase 框架下,以便两个 UID 在实时数据库中看到相同的数据集吗?

如果您能指导我参考一些文档/github 示例以供我进一步研究,那就太好了。非常感谢。

标签: androidfirebase-authentication

解决方案


您可以链接多个提供商。在这里查看firebase.google.com/docs/auth/android/account-linking

  1. 给定具有 Firebase UID 的注册用户,有没有办法在不更改 Firebase 框架下的 UID 的情况下从一个标识符更改为另一个标识符?例如,从电话号码 +852 23334444 到 +852 56648999,或从电话号码 +852 23334444 到电子邮件 abc@gmail.com。

登录用户后,您可以根据需要链接其他身份验证提供程序。

流动:

  • 使用 +852 23334444 登录

  • 更改电话号码并完成流程,然后首先取消链接旧提供商(a)并链接新提供商(b)

  1. 给定一个具有 Firebase UID 并以电话号码 +852 23334444 作为标识符的注册用户,我可以在 Firebase 框架下将另一个电话号码 +852 56648999 分配给同一个 UID 吗?

您可以按照上述第 1 项操作,但无需取消与旧提供商的关联(步骤 a)

  1. 对于以两个电话号码作为标识符的两个 firebase UID,我可以将这两个 UID 分组到 firebase 框架下,以便两个 UID 在实时数据库中看到相同的数据集吗?

您无法将 2 个 UID 分组。但是你可以设计你的实时数据库来查找你想要的正确数据

假设用户 A 有 UID: 123,用户 B: 456。您需要将这些 UID 映射到您存储数据的唯一 ID

userMapping: {
    123: {
        userId: abc
    },
    456: {
        userId: abc
    }
}

users: {
    abc: {
        name: 'User A',
        ...
    }
}

推荐阅读