Firebase 用户身份验证

时间:2021-05-09 21:02:36

标签: swift firebase google-cloud-firestore

正在开发 iOS 应用,目前应用有一些未来:

  • 使用电话号码或 Apple 登录/登录
  • 读取数据 现在我想将登录的用户添加为 Firestore 集合“用户”中的文档。我想从 Firestore 集合中存储最喜欢的文档的地方。顺便说一句,应用中的用户没有敏感信息。

我的第一个场景是:

  1. 用户登录。
  2. 应用向后端发送请求,后端使用 uid 和收藏夹数组创建/更新文档。
  3. 当用户想要获取收藏列表或添加新用户时,应用会发送带有 uid (Auth.auth().currentUser) 的请求,以检测当前用户。

但在 firebase 文档中,我们有这个: 用户 ID,对于 Firebase 项目是唯一的。如果您有后端服务器,请勿使用此值进行身份验证。 顺便说一句,互联网提供的许多指南都将 uid 作为与后端通信的关键。

我有另一个想法 - 保存电话号码或电子邮件地址而不是 uid。但我想这种情况很糟糕。

谁能解释一下最佳实践?

1 个答案:

答案 0 :(得分:0)

关键区别在于 UID 用于区分一个用户和另一个用户。它是一个唯一标识符,您可以使用它来将文档或集合与该特定用户相关联,但这并不用于对用户进行身份验证,这是通过称为 ID token 的 JWT 完成的,对于大多数 Firebase被动处理和解码。

您可以将用户的 uid 共享给其他用户,以便应用知道哪些用户拥有数据集、哪些用户在团队中等。不应单独使用它来验证用户,但取决于您的服务,此信息可通过安全规则中的 context.auth 属性或 request.auth 资源获得。