2015-08-12 3 views
-1

Использование parse.com и JS SDK.Parse-запрос, не ограничивающий результаты текущего пользователя

Почему этот запрос не ограничивает результаты только текущим пользователем? Я использовал

query.exists ("ProfilePic"), Parse.User.current();

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

Не знаете, почему это так?

var query = new Parse.Query(Parse.User); 
var user = Parse.User.current(); 
if(user.has("ProfilePic")) 
query.find({ 
     success: function(results) { 
      // If the query is successful, store each image URL in an array of image URL's 
      imageURLs = []; 
      for (var i = 0; i < results.length; i++) { 
       var object = results[i]; 
       imageURLs.push(object.get('ProfilePic').url()); 
      } 
      // If the imageURLs array has items in it, set the src of an IMG element to the first URL in the array 
      if (imageURLs.length > 0) { 
       $('#Image01').attr('src', imageURLs[0]); 
      } 
       $('#Image01').attr('src', imageURLs[0]); //first image 
     }, 
     error: function(error) { 
      // If the query is unsuccessful, report any errors 
      alert("Error: " + error.code + " " + error.message); 
     } 
    }); 

ответ

2

Вы не используете query.exists(), как вы думаете. Кроме того, вы просто пытаетесь проверить, имеет ли текущий пользователь изображение профиля? Потому что вы можете просто использовать метод объектов .has("key"), а пользователь - это объект. Если это код облака, а не код клиента, вам может потребоваться сначала выбрать пользователя. Если это клиентский код, у вас должен быть уже обновленный пользователь.

Вы не должны расширять объект пользователя. Не нужно вообще. Используйте тип объекта Parse.User, так что если вы запрашивая для пользователей, сделать var query = new Parse.Query(Parse.User);

Так что я думаю, что вы хотите что-то подобное:

var user = Parse.User.current(); 
if(user.has("ProfilePic")) 
{ 
    //Do your stuff with the image 
    var imageURL = user.get("ProfilePic").url(); 
    $('#Image01').attr('src', imageURL); 
} 
else 
{ 
    alert("Error: User does not have a 'ProfilePic' set"); 
} 
+0

T спасибо, ив обновленный вопрос - это как вы имеете в виду?> – Dano007

+0

Нет. Вы не указали никаких условий для запроса, поэтому в настоящее время он запрашивает для всех и всех пользователей. результаты будут массивом ваших первых 1000 пользователей. Откуда вы вызываете этот код, и пытаетесь ли вы получить изображение профиля текущего пользователя или изображение профиля пользователя? Если это только изображение профиля текущего пользователя, тогда вам нужен только код, который у меня есть. Теперь редактируем, чтобы включить то, что вам нужно от блока успеха. Если вы пытаетесь получить образ профиля какого-либо определенного пользователя, вам придется забрать этого пользователя. Если это так, lmk, и я покажу вам, как это сделать. –

+0

ОК спасибо, поэтому его просто профиль pic для текущего пользователя, поэтому код, как в приведенном выше примере. Я не использую код облака для этого раздела. Поскольку есть только одно изображение: мне интересно, могут ли мои коды сложнее получить его, и я должен использовать что-то вроде примера синтаксического анализа var profilePhoto = profile.get («photoFile») ; $ ("profileImg") [0] .src = profilePhoto.url(); ? – Dano007

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