我试图从我的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"的解决方法。
谢谢!
答案 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();
}
}
});
}