问题描述
我一直在尝试在我的android应用程序中进行注册/登录,并且在Parse Core的帮助下,我通过将用户信息存储为Object来尝试这样做。
我已经使一切正常工作。 好吧...差不多。
我现在唯一要做的就是为每个注册用户添加唯一的用户ID,并在每次新用户注册时将其递增1。
我尝试使用Users.increment("userID", 1);
,并且有效,但不会超过值1
。
这就是我想要做的:
这是我的注册表格代码:
ParseObject Users = new ParseObject("Users");
Users.increment("userID", 1);
Users.put("first_name", firstname);
Users.put("last_name", lastname);
Users.put("email", email);
Users.put("password", password);
Users.saveInBackground(new SaveCallback() {
@Override
public void done(ParseException e) {
if (e == null) {
//User registered successfully.
Toast.makeText(RegisterActivity.this, "Registration successful."
, Toast.LENGTH_SHORT).show();
//Take user to LoginActivity.
startActivity(new Intent(RegisterActivity.this, LoginActivity.class));
} else {
//User registration failed.
Toast.makeText(RegisterActivity.this, "Registration failed."
, Toast.LENGTH_SHORT).show();
//Show error.
e.printStackTrace();
}
}
});
感谢您的时间。
1楼
当您编写ParseObject user = new ParseObject("Users");
您正在定义表的新行,因此,如果调用increment()
,则将仅增加该行的值。
如果您想做其他事情,我可以为您提供帮助。 根据您要做什么,答案是不同的:
- 保留用户总数;
- 为每个用户添加唯一的标识符;
- ...
以及为什么要这么做。
请注意,每个用户在objectId
字段中已经具有唯一的标识符,这对于大多数(如果不是全部)应用程序很有用。
好的,现在我已经看到了您的第二个屏幕截图,并了解了您要实现的目标。 当然可以,但是我不建议这样做。 例如,假设您设法编写了工作代码。 如果..会发生什么:
用户ID = 1的用户是否删除其帐户? 您是否要按比例缩小之后注册的所有用户的userID(userID = 2、3,...)? 那很难,而且几乎没有用。
两个或多个用户同时注册? 这将确定严重的同步问题,最终可能导致两个(或多个)用户具有相同的userID。
所以我的答案是:只有通过努力才能实现您想要的东西,并且可能毫无用处。 如果您提供有关为什么要这样做的其他信息,我们可以找到一种更好的方法。