2

我的应用程序每小时检索用户所在位置的 GPS 位置。如果用户更新了一个列表,那么我会在 ParseCloud 中添加或删除该项目。

截至目前,我实例化了一个 ParseObject

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

然后我使用我的密钥初始化 Parse 并打开分析

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

如果位置可用(在 LocationListener 的 onLocationChanged 方法中),我将纬度和经度添加到 locationItem

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

我使用 item 和键 deletedItem 或 addItem 更新 ParseCloud,以便我可以在添加中包含位置信息。

locationItem.put("addItem", blackListItem);

或 locationItem.put("deleteItem", blackListItem); 我调用相同的 lat/long 方法将其放入项目中并将其更新到云中。

由于我希望所有这些更新都存储在每个用户的基础上,我想知道这样做的正确方法。我怀疑我需要以某种方式使用 ParseUser 类,但对如何使用感到困惑。

谢谢您的帮助!

4

2 回答 2

0

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

使用 Rest API 和 android,您至少可以使用此处的答案来关联用户,方法是将该用户的 oid 包含在“LocalInformation”类对象中包含的所有 ACL 对象中,并在您发布时将用户的令牌包含在 http 标头中/GET “本地信息”类型。

于 2013-06-04T13:43:27.693 回答
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
}
于 2015-09-03T09:37:09.010 回答