2013-06-03 13 views
2

我的应用程序每小时都会检索用户位置的GPS位置。如果用户更新列表,那么我可以从ParseCloud添加或删除该项目。如何为我的Android应用程序的每个用户创建一个唯一的ParseObject?

截至目前,我实例化的parseObject

private ParseObject locationItem = new ParseObject("LocationInformation"); 

然后我初始化解析用我的钥匙,打开分析

Parse.initialize(this, "KEY", "KEY"); 
    ParseAnalytics.trackAppOpened(getIntent()); 

如果该位置是可用的(在LocationListener的的onLocationChanged方法中),我向经纬度添加了经度和纬度

locationItem.put("latitude", location.getLatitude()); 
locationItem.put("longitude", location.getLongitude()); 
locationItem.saveEventually(); 

我使用该项目和关键字deletedItem或addItem更新ParseCloud,以便可以使用add添加位置信息。

locationItem.put("addItem", blackListItem); 

或 locationItem.put( “deleteItem”,blackListItem); 我调用相同的经纬度方法将其放入项目中并将其更新到云中。

因为我希望所有这些更新都以每个用户为基础进行存储,所以我想知道这样做的正确方法。我怀疑我需要以某种方式使用ParseUser类,但是我很困惑。

谢谢你的帮助!

回答

0

阅读用户和用户表所在的手册。在应用程序的第一次配置时,它应该创建一个新的解析用户,然后使用其中一种技术将其他数据类型关联到新用户。

使用Rest API和android,至少可以使用答案here通过将用户的oid包含在“LocalInformation”类对象中包含的所有ACL对象中并通过将用户的令牌包含在http中来关联用户您POST/GET“本地信息”类型时的标题。

0

您可以让用户创建一个新帐户,或使用其Facebook或Twitter帐户登录,然后将ParseObject与ParseUser关联。

一旦用户使用新帐户登录,或使用其Facebook或Twitter帐户,ParseUser对象将不会为空。

final boolean isLoggedIn = ParseUser.getCurrentUser() != null; //isLoggedIn should be true 

之后,只需创建对象并将其与ParseUser关联即可。

ParseUser mUser = ParseUser.getCurrentUser(); 

ParseObject mItem = new ParseObject("LocationInformation"); 
mItem.put("latitude", location.getLatitude()); 
mItem.put("longitude", location.getLongitude()); 
mItem.put("UniqueUser", mUser); 
mItem.saveInBackground(); 

您使用查询来查找与特定唯一用户关联的对象。

ParseQuery<ParseObject> query = ParseQuery.getQuery("LocationInformation"); 
query.whereEqualTo("UniqueUser", ParseUser.getCurrentUser()); 

//if running this code on a background thread, otherwise use a callback 
try 
{ 
    //should be unique object associated with a user 
    ParseObject mItem = query.getFirst(); 
} 
catch(ParseException e) 
{ 
//DEBEUG 
} 
相关问题