【问题标题】:Angular Firestore; Best practice for query parameter角火库;查询参数的最佳实践
【发布时间】:2020-08-30 04:00:13
【问题描述】:

我正在编写一个模块,它允许用户设置所有用户都可以查看的给定属性。这一切都发生在 /users 网址上。

如果用户已登录且 url 为 /users,则显示用户自己的个人资料 如果 url 是 /users/{id} 则获取该 id 并用于查询数据库以获取该用户参数。

我的问题是 - 使用用户 uid 作为 id 参数是否被认为是不好的做法?这实质上为用户的数据提供了一个行 ID。每个用户开始时唯一的其他参数是电子邮件地址,所以我不知道还能做什么。

还有其他最佳做法吗?

我对该集合的规则已设置为任何用户都可以阅读记录,但任何用户只能编辑自己的个人资料。通过提供该 ID,我非常信任该规则。

【问题讨论】:

标签: angular firebase google-cloud-firestore firebase-authentication


【解决方案1】:

我不认为使用 id 是一个坏习惯。它可能对 SEO 不友好,但不一定是坏习惯。

您必须记住,无论如何,记录 id 在客户端都是可见的(假设您使用的是 @angular/fire 库)。 配置 Firestore 安全规则以禁止一个用户更改另一个用户的记录非常重要。

如果您正在构建一个用户也有用户名(或 @username)的社交网络,您可能需要考虑使用用户名作为他们的 id,这样 URL 将类似于 /users/@<username>users/<username>,或者您可以创建一个从用户名转换为用户 ID 的集合,这是基于观察的更流行的解决方案。

就我个人而言,我两者都做过,而且我并不偏爱其中一个。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-10
    • 1970-01-01
    • 1970-01-01
    • 2010-09-25
    • 1970-01-01
    • 1970-01-01
    • 2013-10-02
    • 2013-01-06
    相关资源
    最近更新 更多