Firebase在Android中的多个where子句查询

时间:2017-07-10 10:32:21

标签: android firebase firebase-realtime-database

任何人都可以将以下查询转换为Android中的firebase查询。我熟悉firebase但不知道如何使用多个where子句

public static ParseQuery<ParseUser> getSearchSurvivorQuery(String keyword) {
    ParseQuery<ParseUser> query1 = ParseUser.getQuery();
    query1.whereContains(DbConstants.NAME, keyword);
    query1.whereNotEqualTo(DbConstants.TYPE,
            Constants.USER_TYPE.SUPPORTER.ordinal());
    query1.whereNotEqualTo(DbConstants.ID, ParseUser.getCurrentUser()
            .getObjectId());
    query1.whereNotEqualTo(DbConstants.VISIBILITY, Constants.PRIVATE);
    query1.whereNotEqualTo(DbConstants.DEACTIVATED, true);

    ParseQuery<ParseUser> query2 = ParseUser.getQuery();
    query2.whereContains(DbConstants.NAME_LOWERCASE, keyword.toLowerCase());
    // query2.whereEqualTo(DbConstants.TYPE,
    // Constants.USER_TYPE.SURVIVOR.ordinal());
    query1.whereNotEqualTo(DbConstants.TYPE,
            Constants.USER_TYPE.SUPPORTER.ordinal());
    query2.whereNotEqualTo(DbConstants.ID, ParseUser.getCurrentUser()
            .getObjectId());
    query2.whereNotEqualTo(DbConstants.VISIBILITY, Constants.PRIVATE);
    query2.whereNotEqualTo(DbConstants.DEACTIVATED, true);

    List<ParseQuery<ParseUser>> queries = new ArrayList<ParseQuery<ParseUser>>();
    queries.add(query1);
    queries.add(query2);

    ParseQuery<ParseUser> mQuery = ParseQuery.or(queries);

    return mQuery;
}

2 个答案:

答案 0 :(得分:0)

如果您查看由Firebase本身发布的this视频,您可以了解如何将常见SQL查询转换为Firebase

答案 1 :(得分:0)

您不能对不同的孩子进行多次查询,可以对单个孩子进行查询,您必须从数据列表中进行过滤。 查看此问题的答案Query based on multiple where clauses in firebase

相关问题