我的应用程序检索每小时用户所在位置的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,以便我可以在add中包含位置信息。
locationItem.put("addItem", blackListItem);
或 locationItem.put(“deleteItem”,blackListItem); 我调用相同的lat / long方法将其放入项目并将其更新到云端。
由于我希望所有这些更新都是基于每个用户存储的,所以我想知道这样做的正确方法。我怀疑我需要以某种方式使用ParseUser类,但我很困惑如何。
感谢您的帮助!
答案 0 :(得分:0)
阅读涵盖用户和用户表的手册。在应用程序的第一个配置中,它应该创建一个新的解析用户,然后使用几种技术之一将其他数据类型关联到新用户。
使用Rest API和android,您至少可以使用答案here通过在“LocalInformation”类对象中包含的所有ACL对象中包含该用户的oid以及通过包含用户的令牌来关联用户在POST /获取“LocalInformation”类型时在http标头中。
答案 1 :(得分: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
}