【问题标题】:How to handle different-case usernames in Firebase?如何在 Firebase 中处理不同大小写的用户名?
【发布时间】:2017-07-10 23:23:04
【问题描述】:

我遇到了涉及区分大小写键的 Firebase DB 问题。例如:我为每个注册的新用户创建一个“用户名”键。我正在通过正则表达式验证此“用户名”值,并检查输入的值是否已存在于数据库中(检查用户名可用性)。我的问题是我刚刚意识到 Firebase 假设相同值的不同句子大小写是不同的值。

例如:

“用户名”:john“用户名”:John 被视为两个不同/唯一的用户名

我正在考虑获取用户所需的用户名输入字符串并将其全部大写(或全部小写),从而在数据库中创建统一性,但这样会破坏拥有混合大小写用户名的能力。有没有办法绕过这个?

【问题讨论】:

  • 使用大写的用户名作为key。该值将是用户信息,包括用户指定的用户名。
  • 我通常会添加一个用于搜索的辅助属性。嗯....我通常会添加一个全文搜索服务。但如果这不是一个选项,我添加UsernameLowercaseUsernameIdiomatic 进行搜索。
  • 那么,这不是你想要的吗?对于大小写混合的用户名,您确实需要 Firebase 区分大小写,不是吗?或者你想让“John”和“john”成为同一个键?在这种情况下,您的用户名不再区分大小写,您将失去混合大小写用户名的能力。看起来您希望用户能够输入混合大小写,但查询不区分大小写。在那种情况下,我认为UsernameLowercase 是@FrankvanPuffelen 提到的方式。

标签: firebase firebase-realtime-database


【解决方案1】:

我在使用 firebase 时遇到了同样的问题。解决方案是在我的系统上为“可搜索”字段创建一个小写的新属性。我还删除了此属性上单词的重音符号。

【讨论】:

    猜你喜欢
    • 2014-11-03
    • 2013-10-25
    • 1970-01-01
    • 2012-12-13
    • 2018-04-28
    • 1970-01-01
    • 1970-01-01
    • 2017-01-23
    • 2016-03-23
    相关资源
    最近更新 更多