2

こんにちは、ParseObject から ParseUser オブジェクトを取得する方法を考えていました。ParseQuery は List を返すため、これを行う必要があります。これが私のコードです。助けてくれてありがとう!

        // get the currentUser
        currentUser = ParseUser.getCurrentUser();
        List<ParseObject> friendsList = currentUser.getList("friendsList");

        // search for the person the user wants to add as a friend
        List<ParseObject> userResults = new ArrayList<ParseObject>();
        ParseQuery otherUserQuery = ParseUser.getQuery();
        otherUserQuery.whereEqualTo("username", "jyo2");
        try {
            userResults = otherUserQuery.find();
        } catch (ParseException e1) {
            // fail
            e1.printStackTrace();
        }

        // get the friend from the query if there was one and add it to the
        // currentUser friends list
        if (userResults.size() != 0) {
            ParseObject currentObject = userResults.get(0);
            friendsList.add(currentObject);
            currentUser.put("friendsList", friendsList);
        }
        // save the update
        try {   
            currentUser.save();
        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        // try to view the friends
        List<ParseObject> currentFL = currentUser.getList("friendsList");
        ParseObject currentPU = currentFL.get(0);
        System.out.println("THIS IS SIZE" + currentFL.size());
        System.out.println(currentPU.get("name"));
4

2 に答える 2

3

Parse で既存の「User」クラスを使用しますが、使用してサブクラス化します

@ParseClassName("_User")
public class PUser extends ParseUser {

この記事のとおりです。実際には、このオブジェクトをサブクラス化するときに_User "ParseClassName" を参照する必要があります。それは非常に毛むくじゃらです。他のクラスでは、Parse Data Browser に従って、そのリテラル名を使用してクラスを Parse に「登録」するだけでよいため、私は長年これに固執していました。この場合は「User」、「Info」です。 「投稿」などですが、ユーザークラスには特にアンダースコアが必要です

編集申し訳ありませんがPUser、クエリから返されたオブジェクトを取得するときにサブクラスをキャストするだけです。クエリをオブジェクト クエリではなくユーザー クエリに変更する必要がある場合もあります。

これは古い質問であることは知っていますが、これは私には明確ではなく、私が抱えていた問題に関する完全なスレッドがありませんでした。これが役に立ったことを願っています。

于 2015-06-28T14:19:42.163 に答える
0

ParseUser に「キャスト」する必要はないと思います。parseuser は、いくつかの基本的な事前定義されたプロパティが添付されていることを除けば、parseobject でもあります。他の parseobject をクエリするように、とにかくクエリを実行できます。

于 2014-01-21T08:14:32.223 に答える