如何在移动设备中强制使用唯一的用户名

时间:2014-09-08 05:03:25

标签: ios google-app-engine design-patterns google-cloud-datastore username

我正在开发一款需要唯一用户名的应用。因此,当用户输入名称时,我需要与服务器核实该名称是否可用?这样做的最佳策略是什么,即设计模式?我有一些想法,但如果这已有一个合理的解决方案,我不想重新发明轮子并让它变坏。以下是我的一些想法

  1. 用户输入4个字母后,对于用户输入的每个新字符,如果字符串可用,则检查服务器上的名称。如果是,请说出来;如果不是,请说出来。
  2. 等待用户完成输入名称,然后单击“检查可用性”。然后告诉用户是否有姓名或名称是否可用。
  3. 与策略1相同,但不是每次都检查服务器:让服务器发回1000个以前缀开头的字符串,以便我可以在本地检查。如果在列表中找不到前缀,则检查服务器并返回另一批;直到用户输入的字符串/前缀在当前批次中没有匹配,并且在后续服务器查询中也不匹配。
  4. 所以这些是我到目前为止所考虑的三个想法。我想保护用户设备的电池寿命,同时节省服务器资金(我正在使用app-engine数据存储)。但当然最重要的是用户体验。

    目前我正在开发iOS版本。但我认为答案可能同样适用于任何其他平台。

    注意

    我在我的应用程序中区分用户名与userId,以便:username是所有用户都可以看到的名称(例如Stack Overflow或Twitter或Instagram上使用的用户名)。 UserId是私钥(在这种情况下,我只使用私人电子邮件地址)。

1 个答案:

答案 0 :(得分:1)

如果我开始打字" Andrei Volgin"在显示名称字段中,作为用户,您开始向我显示"可用"在我输入" Andrei Vo"之后。此时,您正在使用电池寿命和数据计划,并且可能会降低慢速网络上的体验,对用户没有任何好处。

我认为更好的策略是在用户提交名称时检查可用性。响应可以包括使用一组规则创建的建议替代名称的列表。例如,如果" Andrei Volgin"如果没有,你可以查看和建议"一个Volgin"," Andrei_Volgin"等