查询解析用户

Nir*_*Raj 5 android parse-platform

我正在 android 中创建一个应用程序,允许用户搜索在该应用程序中注册的其他用户。

在进入应用程序之前,每个用户都被要求输入一组详细信息,例如“出生日期”。这些数据直接存储在用户类中。

我的要求是,如果用户输入用户名并进行搜索,他必须能够查看该特定用户的所有可用详细信息。例如:假设每个用户都必须有一个电子邮件(字符串)和出生日期(字符串)。用户搜索姓名“约翰”。查询应该是什么,以便我可以检索用户名为“John”的用户的电子邮件和 DOB。

Parse.com 指南中给出的数据是

ParseQuery<ParseUser> query = ParseUser.getQuery();
query.whereEqualTo("username", name);
query.findInBackground(new FindCallback<ParseUser>() {
    public void done(List<ParseUser> objects, ParseException e) {
        if (e == null) {
            Toast.makeText(getApplicationContext(),"Query Success",Toast.LENGTH_LONG).show();
        } else {
            Toast.makeText(getApplicationContext(),"Query Not Successful",Toast.LENGTH_LONG).show();
        }
    }
});
Run Code Online (Sandbox Code Playgroud)
  1. 我需要做出哪些改变才能实现我的目标?

  2. 如何访问存储在对象中的字符串?

  3. 如果我从查询中检索到多条记录,我该如何处理?

我已经像这样编辑了我的查询

            ParseQuery<ParseUser> query = ParseUser.getQuery();
            query.whereMatches("username", name);
            query.findInBackground(new FindCallback<ParseUser>() {
                public void done(List<ParseUser> objects, ParseException e) {
                    if (e == null) {
                        for(ParseUser singleobject:objects){
                        String mail=singleobject.get("email").toString();
                        Toast.makeText(getApplicationContext(),mail,Toast.LENGTH_LONG).show();}
                    } else {
                        Toast.makeText(getApplicationContext(),"Query Not Successful",Toast.LENGTH_LONG).show();
                    }
               }
            });
Run Code Online (Sandbox Code Playgroud)

不会生成 toast,但会毫无例外地执行查询。

循环语句是正确的还是我做错了什么??

dan*_*anh 4

  1. 为了实现我的目标,我需要做出哪些改变?

该代码看起来正确地查询 ParseUser 以获取用户名的精确匹配。要更宽松地匹配,请考虑使用whereMatches

  1. 如何访问存储在对象内部的字符串?

Parse.ObjectgetString()根据属性类型提供以及其他“获取”变体。

  1. 如果我从查询中检索多条记录,我该如何处理?

完成处理程序的“objects”参数findInBackground是一个数组,其中包含零个或多个查询匹配项。像处理其他数组一样处理该数组。