2

私のアプリは、ユーザーがいる場所の GPS 位置情報を 1 時間ごとに取得します。ユーザーがリストを更新すると、その項目を 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(); 

アイテムとキー deletedItem または addItem を使用して ParseCloud を更新し、add に位置情報を含めることができるようにします。

locationItem.put("addItem", blackListItem);

または locationItem.put("deleteItem", blackListItem); 同じ緯度/経度メソッドを呼び出してアイテムに配置し、クラウドに更新します。

これらの更新をすべてユーザーごとに保存したいので、その適切な方法を知りたいです。どうにかして ParseUser クラスを使用する必要があると思われますが、その方法について混乱しています。

ご協力ありがとうございました!

4

2 に答える 2

0

ユーザーに新しいアカウントを作成させるか、facebook または twitter アカウントでサインインさせてから、ParseObject を ParseUser に関連付けることができます。

ユーザーが新しいアカウントでサインインするか、Facebook または Twitter アカウントでサインインすると、ParseUser オブジェクトは null になりません。

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 に答える