从颤振中的电话号码获取用户ID

时间:2021-03-26 15:31:12

标签: firebase flutter dart firebase-authentication

在应用程序中,该应用程序仅通过电话身份验证使用户登录。 现在的问题是我可以从他的电话号码中获取用户 ID(虽然不是当前用户的用户 ID)。 我可以访问应用程序中其他用户的电话号码,我想获取他们的 ID 以供进一步使用。 是否可以在后端使用 firebase 进行颤振?

2 个答案:

答案 0 :(得分:2)

根据电话号码或电子邮件地址查找用户的 UID 被视为敏感操作。因此,此类操作仅在 Admin SDK 中可用,这些 SDK 旨在用于受信任的环境,例如您的开发机器、您控制的服务器或 Cloud Functions。有关这些的更多信息,请参阅文档中 looking up user data 中底部的两个代码示例。

如果您想从客户端代码执行此类操作,您的两个主要选择是:

  1. 将所需的映射存储在云托管数据库中,例如 Firebase 的实时数据库或 Firestore,作为 Huthaifa also answered

  2. 在您通过 Admin SDK 查找用户的服务器或 Cloud Functions 上创建您自己的自定义 API。然后,您的客户端应用程序代码可以调用此自定义 API。

在这两种情况下,您都可以完全控制您共享的数据以及您如何保护访问。

答案 1 :(得分:1)

当然可以,如果您发布用户模型的结构,或者您如何将它们存储在 firebase 中,则有多种方法可以做到这一点。

您可以像以下示例一样运行简单的 Firebase 查询: FirebaseFirestore.instance.collection('users').where('phoneNumber', isEqualTo: thePhonenumberOftheuserYouwant2GetUIDfor).get()

您还可以将每个用户的可用\可访问联系人存储在他们的用户文档中,当您的用户登录时,它会获取所有允许的用户号码。

您为问题提供的信息越多,StackOverflow 可以为您提供的信息就越多。