Как ограничить количество элементов в столбце массива при разборе - PullRequest
0 голосов
/ 17 апреля 2020

У меня есть столбец массива на моем сервере Parse. Он собирает других пользователей, за которыми «следует» текущий пользователь. Я хотел бы ограничить количество элементов в этом столбце массива, как это может быть сделано? Я хотел бы ограничить количество элементов до 2. Вот снимок экрана моей страницы сервера Parse с изображением столбцов имени пользователя, пароля и подписчика.

введите описание изображения здесь

Вот раздел моего кода, который добавляет пользователя в столбец массива "isFollowing"

 final ListView listView = findViewById(R.id.listView);
        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {

                CheckedTextView checkedTextView = (CheckedTextView) view;
                if (checkedTextView.isChecked()){
                    Log.i("Info", "Checked");

                    ParseUser.getCurrentUser().add("isFollowing",users.get(i));

В этом разделе моего кода выполняется поиск пользователей адаптера массива, чтобы подтвердить, что пользователи действительны, введенные из editText 'spouseEmailEditText'

ParseQuery<ParseUser> query = ParseUser.getQuery();

        query.whereEqualTo("username", spouseEmailEditText.getText().toString());
        query.findInBackground(new FindCallback<ParseUser>() {
            @Override
            public void done(List<ParseUser> objects, ParseException e) {
                if (e == null && objects.size() > 0) {

                    for (ParseUser user : objects) {
                        users.add(user.getUsername());
                    }
                    adapter.notifyDataSetChanged();

                    Toast.makeText(SpouseConnect.this, "Please Click The Checkmark Next To Your Spouse's Name (if not already checked)",Toast.LENGTH_LONG).show();

                    for (String username: users){
                        if (ParseUser.getCurrentUser().getList("isFollowing").contains(username)){

                            listView.setItemChecked(users.indexOf(username), true);

1 Ответ

1 голос
/ 17 апреля 2020

Вы можете использовать ловушку beforeSave в облачном коде

Parse.Cloud.beforeSave(Parse.User, async (req) => {
  let userObj = req.object;
  let following: [] = userObj.get('isFollowing');
  if (following.length > 2) {
    //Deny to save
    throw 'You can follow up to 2 people';
  }
});
...