2015-05-03 2 views
0

Цель: после того, как пользователь вошел в систему, следующее мероприятие должно отобразить его список курсов. В облаке Парса есть таблица курсов, но как я могу получить правильные курсы (курсы текущего пользователя)? Я думал о 2 подходах: 1. используя метод getCurrentUser - но что делать, если в кеше имеется несколько пользователей? 2. сохраните для каждого курса имя пользователя, которое его сохранили, а затем запросите для этого имя пользователя - но как я должен знать, что метод currentUser вернет правильного пользователя?Как получить текущие пользовательские данные, используя parse sdk в android?

Как я могу решить эту проблему?

ответ

1
  1. с использованием метода getCurrentUser - но что, если есть более чем один пользователь в кэше?

Там всегда один вошедшего в систему пользователя и ParseUser.getCurrentUser() получите. Ну, если нет нет вошел пользователь.

, но как я должен знать, что метод CurrentUser вернет правильный пользователь

Как и выше. Я не понимаю, о чем вы смущены.

Существует таблица курсов в облаке Parse, но как я могу получить правильные курсы (курсы текущего пользователя)

и

сохранить для каждого курса с именем пользователя, который спас его, а затем запросить для этого userName - но как я должен знать, что метод currentUser вернет правильного пользователя?

Я могу придумать два подхода здесь. Может быть и больше. До вас, что вы решили использовать.

Итак, у вас есть таблица _User и таблица Course. Вы можете выполнить одно из следующих действий:

  1. courses Добавить массив каждого _User и для каждого _User, хранить их список курсов там. Это должен быть список objectId s, поэтому в основном у вас будут идентификаторы всех курсов, на которые зарегистрирован _User. Каждый объект Parse имеет ограниченный размер в базе данных, поэтому вы должны его использовать, если вы уверены, что вам не понадобятся большие объемы данных для каждого пользователя. Если вы хотите получить это, запросите таблицу _User по идентификатору пользователя и выберите список курсов.

  2. «Реляционный» подход: добавить таблицу UserCourse, в которой есть userId и столбец courseId. Каждый раз, когда вы хотите добавить курс для определенного пользователя, вы добавляете сюда новую запись, содержащую идентификатор этого пользователя и идентификатор курса. Аналогично вышесказанному, получите запрос, который извлекает все данные из UserCourse по userId.Обратите внимание, что в этом случае вам также необходимо убедиться, что ваш запрос извлекает данные из _User и Course. В противном случае вы просто получите UserCourse записей, в которых просто хранятся идентификаторы.

+0

Я думаю, я не понимаю, как работает ParseUser.getCurrentUser(). Если на одном устройстве зарегистрировано 2 разных пользователя, поэтому кэш имеет данные последнего, кто вошел в систему? – sharon182

+0

Это не последний пользователь, а уже зарегистрированный пользователь. Поэтому, если пользователь A входит в систему, выходит из системы и регистрируется пользователем B, возвращается пользователь B. Если пользователь B выйдет из системы, то возвращается «null». И если пользователь A теперь входит в систему, возвращается пользователь A. И так далее. – async

+0

спасибо, кстати, относительно вашего первого подхода, как мне сохранить массив как значение в ParseObject? – sharon182

Смежные вопросы