parse.com - Android: Retrieving User profile picture from User class in Parse -
i want current user followers in list-view inducing names , profile pictures, have 2 classes in parse : user class: includes ( username , pic columns ) , following class: includes ( username , follower_name columns )
now here query :
@override protected void doinbackground(void... params) { // create array users = new arraylist<userinfo>(); try { parseuser currentuser = parseuser.getcurrentuser(); parsequery<parseobject> innerquery = new parsequery<parseobject>("following"); innerquery.whereequalto("username", currentuser); parsequery<parseuser> query = parseuser.getquery(); query.wherematchesquery("username", innerquery); // ascending query.orderbyascending("createdat"); ob = query.find(); (parseobject user : ob) { // locate images in pic column parsefile image = (parsefile) user.get("pic"); userinfo map = new userinfo(); map.setusername((string) user.get("follower_name")); map.setpic(image.geturl()); users.add(map); } } catch (parseexception e) { log.e("error", e.getmessage()); e.printstacktrace(); } return null; }
i'm new parser , trying learn queries
update :
i change query this:
@override protected void doinbackground(void... params) { users = new arraylist<userinfo>(); //parsequery<parseuser> query = parseuser.getquery(); try { parsequery<parseobject> query = new parsequery<parseobject>("following"); query.whereequalto("username", "suma"); parsequery<parseuser> = parseuser.getquery(); a.wherematcheskeyinquery("username", "follower_username", query); a.orderbyascending("createdat"); ob = a.find(); (parseobject user : ob) { parsefile image = (parsefile) user.get("pic"); userinfo map = new userinfo(); map.setusername((string) user.get("username")); map.setpic(image.geturl()); users.add(map); } } catch (parseexception e2) { // todo auto-generated catch block e2.printstacktrace(); } return null; }
only if user have 1 follower, work fine otherwise (many followers) app crashes
please ?
try like
@override protected void doinbackground(void... params) { // create array users = new arraylist<userinfo>(); try { parsequery<parseobject> innerquery = new parsequery<parseobject>("following"); innerquery.whereequalto("username", parseuser.getcurrentuser().get("username")); parsequery<parseuser> query = parseuser.getquery(); query.wherematchesquery("username", innerquery); // ascending query.orderbyascending("createdat"); ob = query.find(); (parseobject user : ob) { // locate images in pic column parsefile image = (parsefile) user.get("pic"); userinfo map = new userinfo(); map.setusername((string) user.get("follower_name")); map.setpic(image.geturl()); users.add(map); } } catch (parseexception e) { log.e("error", e.getmessage()); e.printstacktrace(); } return null; }
this should more in tune need, don't think work (although can't sure not knowing data model). in current model, have pointer user column in following class. need compare object itself; not username.
Comments
Post a Comment