【问题标题】:How to do a query on parse with a subclass of ParseUser?如何使用 ParseUser 的子类进行解析查询?
【发布时间】:2015-07-01 23:45:49
【问题描述】:

在使用 Parse 的 Android 应用程序上,我想继承 ParseUser。我这样创建了我的子类用户:

@ParseClassName("_User")
public class User extends ParseObject  {
    public User(){}

    public String getDisplayName() {   return getString("username");}
    public void setDisplayName(String value) {   put("username", value);}

    public String getFirstName(){return getString("firstname");}
    public void setFirstName(String value){put("firstname",value); }

   public String getObjectId()  {return getObjectId();}

   public String getFacebookId(){return getString("facebookId");}

   public ParseFile getProfilePictureSmall(){return getParseFile("profilePictureSmall");}
   public void setProfilePictureSmall(ParseFile file) {put("profilePictureSmall",file);}
   public Boolean getPlaceCaptured(){return getBoolean("placeCaptured");}
   public void setPlaceCaptured(Boolean value){put("placeCaptured",value);}

   public String getProfileDesc(){return getString("profileDesc");}
   public void setProfileDesc(String value){put("profileDesc",value);}

   public Date getCreatedAt(){return getDate("createdAt");}
   public void setCreatedAt(Date date){put("createdAt",date);}

   public Date getUpdatedAt(){return getDate("updatedAt");}
   public void setUpdatedAt(Date date){put("updatedAt",date);}
}

然后在 Parseapplication 我放:

 ParseObject.registerSubclass(User.class);
 Parse.initialize(this, "xxxx", "xxxx");

一切正常,但是当我尝试像这样查询用户列表时:

  userQuery.findInBackground(new FindCallback<User>() {
        public void done(List<User> object, ParseException e) {
            if (e == null && object!=null && !object.isEmpty()) {


                for(User item : object)
                {
                    if(item!=null) {
                        User userReference = ParseObject.createWithoutData(User.class, item.getObjectId());
                        mUser.add(userReference);
                        mCustomAdapter.notifyDataSetChanged();



                        Log.i("My Parse User = ", item.getDisplayName());
                    }
                }
            } else {
                Log.i("DONE","FAILED");
            }
        }
    });
}

在对象中,我得到了 ParseUser(而不是用户)的列表,这正常吗?我在这条线上的演员不起作用:

    for(User item : object)

我是否需要我的子类上的所有 getter/setter 与 ParseUser 表完全相同? 我的子类上可以只有 2 或 3 个 getter/setter,而我的 ParseUser 类上可以有 10 个列吗? 是否可以对 ParseUser 进行子类化和查询?

感谢您的帮助

【问题讨论】:

    标签: android parse-platform


    【解决方案1】:

    好吧,我错了……我扩展了错误的类:

    正确的扩展名是:

       public class User extends ParseUser {
    

    【讨论】:

    • 在我的情况下忘记在开头添加下划线
    猜你喜欢
    • 1970-01-01
    • 2011-07-18
    • 2016-04-05
    • 1970-01-01
    • 1970-01-01
    • 2020-12-10
    • 2015-04-23
    • 1970-01-01
    • 2013-12-12
    相关资源
    最近更新 更多