0
のparseObjectアレイリストに格納されている文字列の単一のインスタンスの削除:私はパースに配列フィールドから文字列の単一のインスタンスを削除しようとしている
final ParseObject post = mPosts.get(position);
List<String> repliedToByList = post.getList("repliedToBy"); // Retrieve current list
ParseUser currentUser = ParseUser.getCurrentUser().getObjectId();
repliedToByList.remove(currentUserObjectId); // Remove first instance of specified objectid
post.remove("repliedToBy"); // Clear the entire list
post.addAllUnique("repliedToBy", Collections.singletonList(repliedToByList)); // Add the new list
その文字列は、現在のユーザーのOBJECTIDですが、ユーザが "ポスト" に応答するときには、次のような、追加された:
post.addAll("repliedToBy", Collections.singletonList(ParseUser.getCurrentUser().getObjectId()));
は、例えば、アレイが含ま:
["1RtqEgy1ct","f4qEWY8UOM","f4qEWY8UOM"]
f4qEWY8UOM
という1つのインスタンスを削除する方法はありますか?代わりに、増分/減分を使用してすべてを行うことですが、それは私にとって理想的ではありません。
// Increment replyCount
postObject.increment("replyCount", 1);
postObject.saveInBackground();
しかし、そこにAndroidの解析SDKの明記デクリメント方法と間違って何か、すなわちpostObject.increment("replyCount", -1)
があるので、私は次のことを試してみました:私のreplyCountの増分
リストをArrayListのインスタンスに変換し、List.remove()を呼び出すのではなく、そのエントリを繰り返し処理します。 –
サーバ上で、配列として変数を格納してから、文字列を探して繰り返しました。そのインデックスの値を配列から削除してループから抜け出し、add/removeメソッドを使用するのではなく、正しいキーのオブジェクトの値として変数を保存します。 これは、データベースが配列のインデックスを再作成する可能性があります。このキーを使用しているインデックスの数によっては時間がかかることがあります。 –