@@ -197,80 +197,74 @@ private Query buildDatabaseQueryAtPathAndModifiers(final FirebaseDatabase fireba
197197 query = query .limitToFirst (limit );
198198 } else if (methStr .contains ("equalTo" )) {
199199 String value = strArr [1 ];
200- String key = strArr . length >= 3 ? strArr [2 ] : null ;
201- try {
200+ String type = strArr [2 ];
201+ if ( "number" . equals ( type )) {
202202 double doubleValue = Double .parseDouble (value );
203- if (key == null ) {
203+ if (strArr .length > 3 ) {
204+ query = query .equalTo (doubleValue , strArr [3 ]);
205+ } else {
204206 query = query .equalTo (doubleValue );
207+ }
208+ } else if ("boolean" .equals (type )) {
209+ boolean booleanValue = Boolean .parseBoolean (value );
210+ if (strArr .length > 3 ) {
211+ query = query .equalTo (booleanValue , strArr [3 ] );
205212 } else {
206- query = query .equalTo (doubleValue , key );
213+ query = query .equalTo (booleanValue );
207214 }
208- } catch (NumberFormatException ex ) {
209- if ("true" .equals (value ) || "false" .equals (value )) {
210- boolean booleanValue = Boolean .parseBoolean (value );
211- if (key == null ) {
212- query = query .equalTo (booleanValue );
213- } else {
214- query = query .equalTo (booleanValue , key );
215- }
215+ } else {
216+ if (strArr .length > 3 ) {
217+ query = query .equalTo (value , strArr [3 ]);
216218 } else {
217- if (key == null ) {
218- query = query .equalTo (value );
219- } else {
220- query = query .equalTo (value , key );
221- }
219+ query = query .equalTo (value );
222220 }
223221 }
224222 } else if (methStr .contains ("endAt" )) {
225223 String value = strArr [1 ];
226- String key = strArr . length >= 3 ? strArr [2 ] : null ;
227- try {
224+ String type = strArr [2 ];
225+ if ( "number" . equals ( type )) {
228226 double doubleValue = Double .parseDouble (value );
229- if (key == null ) {
227+ if (strArr .length > 3 ) {
228+ query = query .endAt (doubleValue , strArr [3 ]);
229+ } else {
230230 query = query .endAt (doubleValue );
231+ }
232+ } else if ("boolean" .equals (type )) {
233+ boolean booleanValue = Boolean .parseBoolean (value );
234+ if (strArr .length > 3 ) {
235+ query = query .endAt (booleanValue , strArr [3 ] );
231236 } else {
232- query = query .endAt (doubleValue , key );
237+ query = query .endAt (booleanValue );
233238 }
234- } catch (NumberFormatException ex ) {
235- if ("true" .equals (value ) || "false" .equals (value )) {
236- boolean booleanValue = Boolean .parseBoolean (value );
237- if (key == null ) {
238- query = query .endAt (booleanValue );
239- } else {
240- query = query .endAt (booleanValue , key );
241- }
239+ } else {
240+ if (strArr .length > 3 ) {
241+ query = query .endAt (value , strArr [3 ]);
242242 } else {
243- if (key == null ) {
244- query = query .endAt (value );
245- } else {
246- query = query .endAt (value , key );
247- }
243+ query = query .endAt (value );
248244 }
249245 }
250246 } else if (methStr .contains ("startAt" )) {
251247 String value = strArr [1 ];
252- String key = strArr . length >= 3 ? strArr [2 ] : null ;
253- try {
248+ String type = strArr [2 ];
249+ if ( "number" . equals ( type )) {
254250 double doubleValue = Double .parseDouble (value );
255- if (key == null ) {
251+ if (strArr .length > 3 ) {
252+ query = query .startAt (doubleValue , strArr [3 ]);
253+ } else {
256254 query = query .startAt (doubleValue );
255+ }
256+ } else if ("boolean" .equals (type )) {
257+ boolean booleanValue = Boolean .parseBoolean (value );
258+ if (strArr .length > 3 ) {
259+ query = query .startAt (booleanValue , strArr [3 ] );
257260 } else {
258- query = query .startAt (doubleValue , key );
261+ query = query .startAt (booleanValue );
259262 }
260- } catch (NumberFormatException ex ) {
261- if ("true" .equals (value ) || "false" .equals (value )) {
262- boolean booleanValue = Boolean .parseBoolean (value );
263- if (key == null ) {
264- query = query .startAt (booleanValue );
265- } else {
266- query = query .startAt (booleanValue , key );
267- }
263+ } else {
264+ if (strArr .length > 3 ) {
265+ query = query .startAt (value , strArr [3 ]);
268266 } else {
269- if (key == null ) {
270- query = query .startAt (value );
271- } else {
272- query = query .startAt (value , key );
273- }
267+ query = query .startAt (value );
274268 }
275269 }
276270 }
0 commit comments