从Android中的Parse.com检索指针数据

时间:2015-07-27 14:35:04

标签: java android pointers parse-platform

我试图从我的parse.com 数据库中的指针中检索来自用户类别的字段是" companyId" Pointer Company(它从公司类获取公司objectId)在创建对象时将名为Note的另一个表中的数据添加到名为companyId的字段中。

这是我的parse.com数据库:

班级名称:用户
objectId String | companyId Pointer Company | username String | password String

班级名称:注意 objectId String | companyId String | text String

我一直在寻找解决方案而我找不到任何人,因为我不知道如何检索companyId值,因为它是指针。

提前感谢任何一次灾难。

编辑:问题已经解决,下面有一些对我有用的方法以及#34; bigdee94"的解决方法。

谢谢!

3 个答案:

答案 0 :(得分:4)

卡洛斯,你可以试试这个: -
根据文档,为了从指针列调用关系数据,您可以使用include()方法。

例如: -

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是查询的对象列表
P.S:你可以使ParseObject companyIdObject成为一个全局变量,以便你可以从任何地方访问它。

答案 1 :(得分: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");

它不会在现场提供数据,我相信你可以获得数据所在的内存访问。

感谢您的时间,希望这有助于更多人!

答案 2 :(得分:0)

我已经创建了指针对象,并且可以轻松地从该对象中检索代码。

 final ProgressDialog progress = new ProgressDialog(this);
    progress.setMessage("Loading ...");
    progress.setCancelable(false);
    progress.show();
    ParseGeoPoint point = new ParseGeoPoint(l1, l2);
    ParseUser user = ParseUser.getCurrentUser();
    ParseObject shop = new ParseObject("ShopLocations");
    shop.put("locationName", locname.getText().toString());
    shop.put("pin", Integer.parseInt(setpin.getText().toString()) );
    shop.put("location", point);
    shop.put("menu", ParseUser.getCurrentUser()); // this is poniter object creation in User table
    shop.put("business", ParseUser.getCurrentUser()); // this is another pointer 
    shop.put("userobjectId", user.getObjectId());
    shop.saveInBackground();
    shop.saveInBackground(new SaveCallback() {

        @Override
        public void done(ParseException e) {
            // TODO Auto-generated method stub
            progress.dismiss();
            if (e == null) {
                Toast.makeText(Createloctaion.this, "success", Toast.LENGTH_SHORT).show();
                // success
            } else {
                customToast(e.getMessage());
            }
        }
    });

以下用于检索指针对象的代码:

 if(ParseUser.getCurrentUser()!=null) {
        ParseQuery<ParseObject> query = ParseQuery.getQuery("ShopLocations");
        query.whereEqualTo("menu", ParseUser.getCurrentUser());
        query.whereEqualTo("business",ParseUser.getCurrentUser());
        query.whereEqualTo("userobjectId",ParseUser.getCurrentUser().getObjectId());
        query.findInBackground(new FindCallback<ParseObject>() {
            public void done(List<ParseObject> object, ParseException e) {
                if (e == null) {

                    if (object.size() > 0) {
                    for (ParseObject user : object) {

                        String chkbank = user.getString("locationName");
                        Toast.makeText(Dashboard.this, ""+chkbank, Toast.LENGTH_SHORT).show();
                    }
                    } else {
                    // Handle the exception
                    }
                } else {
                    Toast.makeText(Dashboard.this, ""+e.getMessage(), Toast.LENGTH_SHORT).show();

                }
            }
        });

    }