Android / Cloudboost: добавить каждого пользователя в столбец определенной строки

Я хочу добавить текущего пользователя каждого, кто нажимает кнопку, к столбцу списка типов, чтобы позже я мог просто узнать, сколько людей нажали на нее.

Это мой код:

public void findAnswered(CloudQuery query) throws CloudException {
    query.findById(questionID, new CloudObjectCallback() {
        @Override
        public void done(CloudObject object, CloudException e) throws CloudException {
            if (object != null) {
                Log.i("---------FIND ANS QUERY", "SUCCESS I: " + object.getID());
                answered(object);
            }
            if (e != null) {
                Log.i("---------FIND ANS QUERY", "ERROR: " + e.getLocalizedMessage());
            }
        }
    });
}

public void answered(CloudObject object) throws CloudException {
    CloudObject [] user = {CloudUser.getcurrentUser()};

    Log.i("------UPDATE ANS OBJECT", "A: " + this.answered);
    Log.i("------UPDATE ANS OBJECT", "W: " + this.wrongAnswer);
    Log.i("------UPDATE ANS OBJECT", "R: " + this.rightAnswer);

    object.set("earnings", earnings);
    object.set("dividend", dividend);
    object.set("answered", user);
    if (this.wrongAnswer == 1) {
        object.set("wrong", user);
    }
    if (this.rightAnswer == 1) {
        object.set("right", user);
    }

    object.save(new CloudObjectCallback() {
        @Override
        public void done(CloudObject object, CloudException e) throws CloudException {
            if (object != null) {
                // Success
                Log.i("------UPDATE ANS OBJECT", "SUCCESS I: " + object.getId());
            }
            if (e != null) {
                // Error
                Log.i("------UPDATE ANS ERROR:", e.getLocalizedMessage());
            }
        }
    });
}

Но когда я пытаюсь сделать это на двух телефонах, он добавляет только первого пользователя, который щелкнул по нему, и пропускает второй. Как мне продолжать добавлять пользователей в один и тот же ящик?

1 ответ

Я думаю, что проблема в этой линии
CloudObject [] user = {CloudUser.getcurrentUser()};
Вы создаете массив только с текущим пользователем, поэтому при обновлении CloudObject с object.set("answered", user);Вы просто перезаписываете любой существующий список пользователей в столбце списка и фактически не добавляете текущего пользователя к существующим пользователям так, как вам нужно.
Что вы должны сделать, это извлечь всех существующих пользователей в соответствующую структуру данных (например, ArrayList или Set) и добавить текущего пользователя с помощью users.add(CloudUser.getCurrentUser()) перед обновлением CloudObject

Другие вопросы по тегам