Как получить поля указателя?

Я пытаюсь получить поля в Pointer, как предложено в этом посте , но он всегда возвращает undefined.

Таблица Publication:

  • userId -> User
  • subCategoryId -> Subcategory
  • title
  • description
  • budget

Таблица SubCategory:

  • categoryId -> Category
  • name
  • isActive

И это код, который я пытаюсь (у меня есть только одна запись в таблице):

var user = Parse.User.current();
var User = Parse.Object.extend("User");
var userQuery = new Parse.Query(User);
userQuery.equalTo("objectId", user.id);

var Publication = Parse.Object.extend("Publication");
var publicationQuery = new Parse.Query(Publication);
publicationQuery.include("subCategoryId");
publicationQuery.matchesQuery("userId", userQuery);        
publicationQuery.find({
    success: function(publications) {
        console.log(publications[0].get("title"));
        // Me retorna undefined
        console.log(publications[0].get("subCategoryId"));
    }
});

Что мне нужно сделать, это:

publications[0].get("subCategoryId").get("name");

Но вышесказанное, очевидно, возвращает меня:

Uncaught TypeError: Cannot read property 'get' of undefined

Кросс-пост в переполнении стека

7
задан 23.05.2017, 15:39
1 ответ

Если у Вас есть указатели в Вашей базе данных анализа как следующая, нет необходимости работать с ObjectID.

enter image description here

Данные, которые у Вас должны быть, что-то как это:

Publication:

  • user (Pointer <_User>)
  • subCategory (Pointer <SubCategory>)
  • title (String)
  • description (String)

SubCategory:

  • category (Pointer <Category>)
  • ямс (String)
  • isActive (boolean)

Так что, если Вы сохраняете данные как ждут, что следующее должно функционировать:

var currentUser = Parse.User.current();
var Publication = Parse.Object.extend("Publication");
var publicationQuery = new Parse.Query(Publication);
publicationQuery.equalTo("user", currentUser); 
publicationQuery.include("subCategory");       
publicationQuery.find({
    success: function(publications) {
        console.log(publications[0].get("title"));
        // This one returns undefined
        console.log(publications[0].get("subCategory").get("name");
    }
});

Первоначальный ответ https://stackoverflow.com/questions/34734070/retrieving-information-from-pointer-field/3473432

3
ответ дан 24.11.2019, 15:00
  • 1
    Спасибо, проблема состояла в том, что таблица была определена плохо, Пойнтер " apuntaba" в неправильную таблицу, целая головную боль – César 12.01.2016, 14:06