2014-05-22 32 views
0

我正在努力保持一個聊天室的例子我正在努力。什麼時候使用指針和何時使用ParseRelation在這個例子中

考慮: 用戶A 用戶B ChatRoom01

在當用戶A進入ChatRoom01這個例子,我想創建兩者之間的關聯。現在,因爲ChatRoom01已經存在,我可以做抓取對象:

ParseQuery<ParseObject> query = ParseQuery.getQuery("ChatRoom"); 
     query.getInBackground(getIntent().getStringExtra("chatRoom"), new GetCallback<ParseObject>() { 
      @Override 
      public void done(ParseObject chatRoom, ParseException e) { 
       if(e == null){ 
        // we found the object 
        myChatRoom = chatRoom; 
        // set the activity's title 
        setTitle(myChatRoom.getString("name")); 
       }else{ 
        // aww sh!t. can't find it 
       } 
      } 
     }); 

如果我用一個指針,我會做這樣的事情:

myChatRoom.put("member", ParseUser.getCurrentUser()); 

當用戶離開房間,我'想要刪除關聯。我在想:

myChatRoom.remove("member"); 

會從房間中刪除會員關聯。這不是我想要做的。我怎麼做到這一點?

如果事實證明指針是理想的解決方案,當UserB進入聊天室時,我將按照UserA進入房間時的相同步驟操作。但是通過這樣做,我不會用UserB覆蓋UserA的成員信息嗎? ParseRelation似乎是一個更好的選擇,因爲我可以添加/刪除用戶;然而,由於可能有超過100個用戶,我覺得指針是最好的選擇。我願意提供關於如何處理這個問題的建議。

另一種方法是在進入時將它們訂閱到頻道,並在它們離開時取消訂閱。這聽起來不錯,但我不確定如何檢查它們是否已訂閱。

回答

0

聽起來你想使用ParseRelation。

要添加到關係使用:

ParseRelation<ParseObject> relation = myChatRoom.getRelation("members"); 
relation.add(ParseUser.getCurrentUser()); 

要刪除的關係使用:

relation.remove(ParseUser.getCurrentUser()); 

文檔:

Relations Guide

API Reference

相關問題