2015-07-27 2 views
3

Я пытаюсь загрузить данные из указателя в моей базе данных parse.com из класса User, которое является компанией companyId Pointer Company (оно получает объект companyId из компания класса), чтобы добавить эти данные в другую таблицу под названием «Примечание» в поле «companyId» при создании объекта.Извлечение данных указателя из Parse.com в Android

Это моя parse.com база данных:

Имя класса: Пользователь
ObjectId Строка | CompanyID Указатель компании | имя пользователя Строка | пароль Строка

Имя класса: Примечание ObjectId Строка | companyId String | текст Строка

Я ищу решения, и я не нахожу никого, поскольку я не знаю, как получить значение companyId, поскольку это указатель.

Заранее благодарим за любую передачу.

EDIT: Проблема решена, ниже есть как это сработало для меня и другим способом решения этого вопроса «bigdee94».

Спасибо!

ответ

2

Один помощник помог мне, и вот как мы решили его:

Note n = new Note(); 
ParseUser user = ParseUser.getCurrentUser(); 
ParseObject userObj= user.getParseObject("companyId"); 
note.put("companyId", userObj.getObjectId().toString()); 

я основал своего рода сложно, как если бы вы попробовать, как:

Note n = new Note(); 
ParseUser user = ParseUser.getCurrentUser(); 
user.getParseUser("companyId"); 

Он не даст данные в поле, я считаю, что вы получаете доступ к памяти, где находятся данные.

Спасибо за ваше время, надеюсь, это поможет большему количеству людей!

4

Карлос, вы можете попробовать это: -
Согласно документации, для того, чтобы вызвать реляционные данные из указателя столбцов можно использовать метод включает().

Например: -

ParseQuery<ParseObject> userQuery = ParseUser.getQuery(); 
userQuery.include("companyId"); 
userQuery.findInBackground(new FindCallback<ParseObject>() { 
public void done(List<ParseObject> objects, ParseException e) { 
    if (e == null) { 
     // userObjects retrieved successfully 
     ParseObject companyIdObject = (ParseObject) objects.get("companyObjectIdColumn"); 
    } else { 
     Log.d("objects", "Error: " + e.getMessage()); 
    } 
}); 



Где companyObjectIdColumn находится в objectId столбец в вас Company таблице (класс) и
objects является запрашиваемый список объектов
PS: вы можете сделать ParseObject companyIdObject глобальную переменную, чтобы вы могли получить к ней доступ из любого места.

+0

bigdee94, спасибо за ответ, но я основал более легкое решение, как я описал ниже. Я считаю, что это работает, но если я не ошибаюсь в вашем ответе, мне придется сделать еще один ParseQuery, чтобы получить objectId из таблицы Company. Даже если это может помочь, если кто-то захочет сделать это так. –

+1

No @CarlosRomero. Вам просто нужно вызвать столбец objectId в другой ParseObject, например, 'ParseObject companyIdObject = (ParseObject) objects.get (" companyObjectIdColumn ");'. Я еще не пробовал, но считаю, что это логично правильно. Я рад, что вы нашли более простое решение – lawrenceagbani

+0

Нет необходимости бросать объект синтаксического анализа, вы можете просто использовать 'objects.getParseObject (" ")' против того, что у вас там есть –