【发布时间】:2017-07-10 23:23:04
【问题描述】:
我遇到了涉及区分大小写键的 Firebase DB 问题。例如:我为每个注册的新用户创建一个“用户名”键。我正在通过正则表达式验证此“用户名”值,并检查输入的值是否已存在于数据库中(检查用户名可用性)。我的问题是我刚刚意识到 Firebase 假设相同值的不同句子大小写是不同的值。
例如:
“用户名”:john 和 “用户名”:John 被视为两个不同/唯一的用户名
我正在考虑获取用户所需的用户名输入字符串并将其全部大写(或全部小写),从而在数据库中创建统一性,但这样会破坏拥有混合大小写用户名的能力。有没有办法绕过这个?
【问题讨论】:
-
使用大写的用户名作为key。该值将是用户信息,包括用户指定的用户名。
-
我通常会添加一个用于搜索的辅助属性。嗯....我通常会添加一个全文搜索服务。但如果这不是一个选项,我添加
UsernameLowercase或UsernameIdiomatic进行搜索。 -
那么,这不是你想要的吗?对于大小写混合的用户名,您确实需要 Firebase 区分大小写,不是吗?或者你想让“John”和“john”成为同一个键?在这种情况下,您的用户名不再区分大小写,您将失去混合大小写用户名的能力。看起来您希望用户能够输入混合大小写,但查询不区分大小写。在那种情况下,我认为
UsernameLowercase是@FrankvanPuffelen 提到的方式。
标签: firebase firebase-realtime-database