【发布时间】:2021-03-26 15:31:12
【问题描述】:
在应用程序中,该应用程序仅通过电话身份验证登录用户。 现在的问题是我可以从他的电话号码中获取用户 ID(虽然不是当前用户的用户 ID)。 我可以访问应用程序中的其他用户电话号码,并且我想获取他们的 ID 以供进一步使用。 是否有可能在后端与 firebase 一起颤抖?
【问题讨论】:
标签: firebase flutter dart firebase-authentication
在应用程序中,该应用程序仅通过电话身份验证登录用户。 现在的问题是我可以从他的电话号码中获取用户 ID(虽然不是当前用户的用户 ID)。 我可以访问应用程序中的其他用户电话号码,并且我想获取他们的 ID 以供进一步使用。 是否有可能在后端与 firebase 一起颤抖?
【问题讨论】:
标签: firebase flutter dart firebase-authentication
根据电话号码或电子邮件地址查找用户的 UID 被视为敏感操作。出于这个原因,此类操作仅在 Admin SDK 中可用,这些 SDK 旨在用于受信任的环境,例如您的开发机器、您控制的服务器或 Cloud Functions。有关这些的更多信息,请参阅文档中looking up user data 中底部的两个代码示例。
如果您想从客户端代码执行此类操作,您的两个主要选项是:
将所需的映射存储在云托管数据库中,例如 Firebase 的实时数据库或 Firestore,如 Huthaifa also answered。
在您通过 Admin SDK 查找用户的服务器或 Cloud Functions 上创建您自己的自定义 API。然后,您的客户端应用程序代码可以调用此自定义 API。
在这两种情况下,您都可以完全控制您共享的数据,以及您如何保护访问。
【讨论】:
当然可以,有多种方法可以解决此问题,如果您发布用户模型的结构,或者您如何将它们存储在 firebase 中。
您可以像以下示例一样运行简单的 Firebase 查询:
FirebaseFirestore.instance.collection('users').where('phoneNumber', isEqualTo: thePhonenumberOftheuserYouwant2GetUIDfor).get()
您还可以将每个用户的可用\可访问联系人存储在他们的用户文档中,当您的用户登录时,它会获取他们所有允许的用户号码。
您为问题提供的信息越多,StackOverflow 可以为您提供的反馈越多。
【讨论】: