ParseQuery无法获取后端

时间:2016-01-26 23:11:39

标签: java android parse-platform message

重新发布此问题,因为我第一次没有收到任何回复。 Parse似乎没有任何简单的方法可以联系他们(这令人沮丧),所以我真的希望这里有人可以提供帮助。

我目前正在使用Parse创建一个消息传递应用。除了标准的ParseUser,Chatroom和Message之外,我还有两个基本的ParseObject。聊天室包含指向聊天室中两个用户的指针。消息包含消息的内容,指向发布消息的用户的指针以及指向聊天室的指针。

首先,我创建了当前用户所在的所有聊天室的列表。然后,我正在尝试在所有这些聊天室中创建最新消息的第二个列表(我已经无法创建一个聊天室没有先发送至少一条消息)。

我的代码如下所示:

TextView mostRecent = (TextView) row.findViewById(R.id.mostRecent);

Date dt1 = null;
ParseQuery lastMessage = ParseQuery.getQuery("Message");
ParseObject chatroom = (ParseObject) roomList.get(position);
Log.w("Chatroom ObjectID...", room.getObjectId());

try {
    lastMessage.whereEqualTo("chatroom", chatroom.fetchIfNeeded());
    List<ParseObject> allMessages = lastMessage.find();

    Log.w("# of Messages...", "Size of the list: " + allMessages.size() + ", Count of query: " + allMessages.count());

    if (allMessages.size() > 0) {
        mostRecent.setText((String) theList.get(theList.size() - 1).get("content"));
        dt1 = allMessages.get(allMessages.size() - 1).getCreatedAt();
    }

} catch (ParseException err) {

    err.printStackTrace();

    Log.w("PARSE ERROR", err.getMessage());

}

此代码适用于每个聊天室,其中当前用户是在该聊天室中创建聊天室和消息的用户。但是,每当我有不同的用户尝试启动聊天室并向原始用户发送消息时,代码就会失败。

要清楚,第二个用户成功创建了聊天室和消息。我已经验证聊天室成功添加到原始用户的聊天室列表中,并且消息包含指向正确聊天室的指针。但是,无论出于何种原因,日志显示列表大小为0,计数为0.我甚至尝试在原始用户的帐户上查询第二个用户的确切消息,并声称该消息不存在。

有什么想法吗?这可能与ACL有关吗?提前谢谢!

注意:我已确认两个用户都正确包含在消息的ACL中。是什么赋予了?为什么这不起作用?

1 个答案:

答案 0 :(得分:0)

您需要等待查询才能获取数据。

lastMessage.findInBackground(new FindCallback<ParseObject>() {
     public void done(List<ParseObject> allMessages, ParseException e) {
         if (e == null) {
            Log.w("# of Messages...", "Size of the list: " + allMessages.size() + ", Count of query: " + allMessages.count());

         } else {
            Log.w("Exception thrown", e.getMessage());
         }
     }
 }