ParseObject 中解析查询的问题

Posted

技术标签:

【中文标题】ParseObject 中解析查询的问题【英文标题】:Problems with parse Query in ParseObject 【发布时间】:2019-05-08 18:42:03 【问题描述】:

我在处理这个查询时遇到了问题。

我想在这里完成的是根据 idChatSeleccionadoAppUsuario(KYLmvSGP1...) 我可以在列表中包含所有消息和用户(Usuario)。 这是我迄今为止尝试过的:

 ParseQuery<ParseObject> query = ParseQuery.getQuery("Conversaciones");
    queryChat=ParseObject.createWithoutData("Chat",idChatSeleccionadoAppUsuario);
    query.whereEqualTo("ChatId", queryChat);
    query.include("Usuario");
    query.include("ChatId");
    query.findInBackground(new FindCallback<ParseObject>() 
        @Override
        public void done(List<ParseObject> objects, ParseException e) 
            for (ParseObject obj : objects) 
                mensaje = obj.getString("Mensaje");
                Log.i("UFF", "Este es el mensaje" + mensaje);

                enviaMensaje = (ParseUser) obj.get("Usuario");
                Log.i("UFF", "Este es el usuario del chat---->:" + enviaMensaje.getObjectId());

                chatId = obj.getParseObject("ChatId");
                Log.i("UFF", "Este es el id del chat---->:" + chatId);
                //idChatSeleccionado=chatId.getObjectId();
                listaDeMensajes.add(obj);


            
            mMessageAdapter = new MessageListAdapter(getContext(), listaDeMensajes);
            mMessageRecycler.setAdapter(mMessageAdapter);
            queryFromChat();


        
    );


也试过这个:

 ParseQuery query = ParseQuery.getQuery(“Conversaciones”);
    query.whereEqualTo(“ChatId”, idChatSeleccionadoAppUsuario);
    query.include(“Usuario”);
    query.include(“ChatId”);
    query.findInBackground(new FindCallback() 
    @Override
    public void done(List objects, ParseException e) 
    for (ParseObject obj : objects) 
    mensaje = obj.getString(“Mensaje”);
    Log.i(“UFF”, “Este es el mensaje” + mensaje);
     enviaMensaje = (ParseUser) obj.get("Usuario");
                    Log.i("UFF", "Este es el usuario del chat---->:" + enviaMensaje.getObjectId());

                chatId = obj.getParseObject("ChatId");
                Log.i("UFF", "Este es el id del chat---->:" + chatId);
                //idChatSeleccionado=chatId.getObjectId();
                listaDeMensajes.add(obj);


            
            mMessageAdapter = new MessageListAdapter(getContext(), listaDeMensajes);
            mMessageRecycler.setAdapter(mMessageAdapter);
            queryFromChat();


        
    );

  

目前两者都返回 listaDeMensajes=0

【问题讨论】:

你能打印出变量“object”,“e”并在这里分享吗? @DaviMacêdo 来自查询 1 或 2,您能建议我打印哪个部分吗? @DaviMacêdo 来自查询 1 或 2,您能建议我打印哪个部分吗?如果您引用 List 对象,则该方法甚至不会在 debugg 上完成。 这很奇怪。您在日志中看到任何错误吗? “完成”回调应始终使用“对象”变量中的某些内容或“e”变量中的错误来调用。为了以防万一,你能在 for 之前打印出两个变量吗? 感谢您的回复@DaviMacêdo 查询正在使用第一个! 【参考方案1】:

最后这是检索查询的方式...它总是但是这篇文章可以帮助很多人...

ParseQuery<ParseObject> query = ParseQuery.getQuery("Conversaciones");
    queryChat=ParseObject.createWithoutData("Chat",idChatSeleccionadoAppUsuario);
    query.whereEqualTo("ChatId", queryChat);
    query.include("Usuario");
    query.include("ChatId");
    query.findInBackground(new FindCallback<ParseObject>() 
        @Override
        public void done(List<ParseObject> objects, ParseException e) 
            for (ParseObject obj : objects) 
                mensaje = obj.getString("Mensaje");
                Log.i("UFF", "Este es el mensaje" + mensaje);

                enviaMensaje = (ParseUser) obj.get("Usuario");
                Log.i("UFF", "Este es el usuario del chat---->:" + enviaMensaje.getObjectId());

                chatId = obj.getParseObject("ChatId");
                Log.i("UFF", "Este es el id del chat---->:" + chatId);
                //idChatSeleccionado=chatId.getObjectId();
                listaDeMensajes.add(obj);


            
            mMessageAdapter = new MessageListAdapter(getContext(), listaDeMensajes);
            mMessageRecycler.setAdapter(mMessageAdapter);
            queryFromChat();


        
    );


【讨论】:

以上是关于ParseObject 中解析查询的问题的主要内容,如果未能解决你的问题,请参考以下文章

Xamarin C# android 和 PARSE - 在 parseObject 中下载 parseFile

使用 Parse.Could.AfterSave 将关系添加到 ParseObject

ParseObject 中解析查询的问题

如何检索 parseObject 子类的指针 [PARSE SERVER]

json.parseobject()的set方法设置顺序

无法创建指向未保存 ParseObject 的指针