2017-07-10 13 views
0

誰でもAndroidのfirebaseのクエリに以下のクエリを変換できますか?私はfirebaseに精通していますが、あなたはFirebase自身で出版されたthisビデオ、見れば、あなたは一般的なSQLクエリを変換する方法についての知識を持つことができます句Androidのfirebase multiple 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; 
} 
+0

Firebaseデータベースは、1つのプロパティでのみ注文/フィルタリングできます。場合によっては、フィルタリングする値を単一のプロパティにマージして、必要なものを達成することができます。私の答えはここを見てください:http://stackoverflow.com/questions/26700924/query-based-on-multiple-where-clauses-in-firebase –

答えて

0

複数でそれを使用する方法を知りませんでしたFirebase

0

あなたは単一の子供で行うことができる別の子供の複数のクエリを行うことはできません、あなたはデータのリストからフィルタする必要があります。 この質問を確認してくださいQuery based on multiple where clauses in firebase