有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java解析增量特性的增量不会超过值1

我一直在尝试在我的安卓应用程序中创建一个注册/登录表单,我一直在尝试借助Parse Core将用户信息存储为一个对象

我已经把一切都做好了。好差不多

现在我唯一需要做的就是为每个注册的用户添加一个唯一的用户ID,并在每次新用户注册时将其递增1

我尝试过使用Users.increment("userID", 1);,它是有效的,但没有超过值1

enter image description here

这就是我想做的:

enter image description here

这是我的登记表代码:

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) 个答案

  1. # 1 楼答案

    当您写入ParseObject user = new ParseObject("Users");时,您正在定义表的一个新行,因此如果您调用increment(),您将只增加该行的值

    如果你想做些不同的事,我可以帮你。答案因您想做什么而有所不同:

    • 保持用户总数
    • 为每个用户添加唯一标识符

    还有你为什么要这么做。请注意,每个用户在objectId字段中已经有了一个唯一的标识符,这对大多数(如果不是全部)应用程序都有帮助


    好的,现在我已经看到了你的第二个屏幕截图,并且理解了你想要实现的目标。这当然是可能的,但我不鼓励这样做。例如,假设您成功地编写了工作代码。如果……,会发生什么情况

    • userID=1的用户是否删除其帐户?您是否要缩小在(userID=2,3,…)之后注册的所有用户的userID?这很难,而且基本上是无用的

    • 两个或多个用户同时注册?这将决定严重的同步问题,最终可能会有两个(或更多)用户具有相同的用户ID

    所以我的答案是:你想要的只有通过努力才能实现,而且可能是无用的。如果您提供有关为什么要这样做的更多信息,我们可以找到更好的方法