我支持移动用户注册(iOS)的“性别”字段。为此,我使用一个自定义表(名为UserResourceTable,URT)来存储性别字段(整数),我依靠作为用户的表的所有者为每个用户查找相应的URT表。
告诉我以下方案是否是正确的实施方案。
在用户注册该服务时,我有一个指定的预先存在的应用程序帐户,用于创建用户帐户(可能是因为有人必须首先登录该服务才能创建帐户,对吗?)。同时,我想创建URT并存储性别字段。这需要至少两次传递给QuickBlox服务器,一次用于创建用户帐户,另一次用于创建URT表。
但是,如果我使用预先存在的应用帐户创建URT,则所有者将成为该帐户而不是移动用户。那么正确的注册顺序是用户首先登录,然后创建URT?或者有没有办法将所有权分配给另一个帐户?我的三个HTTP请求似乎有点过分,我担心(1)可能需要太长时间,或者(2)如果出现问题我将处于不一致状态,我需要询问用户用户下次登录时再次显示性别。
答案 0 :(得分:1)
在用户注册该服务时,我有一个指定的预先存在的应用程序 创建用户帐户的帐户(可能是因为某人有 首先登录服务创建帐户, 右?)。
要创建新用户,您实际上不需要创建用户帐户的预先存在的应用帐户。根据QuickBlox iOS文档 - 您可以使用应用程序会话令牌(而非用户会话令牌)创建用户http://quickblox.com/developers/IOS#A_couple_of_words_about_Authentication_and_Authorization
但是,如果我使用预先存在的应用帐户创建URT,那么 所有者将成为该帐户而不是移动用户。
你是对的,这是不好的解决方案
我看到了两种方法:
1)使用CustomObjects存储性别(按照您的建议)。
在这种情况下,您需要执行3次查询:
2)使用用户标签API
在这种情况下,您只需执行1次查询 - 用户注册:
QBUUser *user = [QBUUser user];
user.email = @"qbuser5@gmail.com";
user.password = @"qbuserr345";
user.tags = @[@"male"]; // or female
[QBUsers signUp:user delegate:self];
要检索所有“男性”用户或“女性”:
[QBUsers usersWithTags:@[@"male"] delegate:self];