@@ -198,26 +198,80 @@ private Query buildDatabaseQueryAtPathAndModifiers(final FirebaseDatabase fireba
198198 } else if (methStr .contains ("equalTo" )) {
199199 String value = strArr [1 ];
200200 String key = strArr .length >= 3 ? strArr [2 ] : null ;
201- if (key == null ) {
202- query = query .equalTo (value );
203- } else {
204- query = query .equalTo (value , key );
201+ try {
202+ double doubleValue = Double .parseDouble (value );
203+ if (key == null ) {
204+ query = query .equalTo (doubleValue );
205+ } else {
206+ query = query .equalTo (doubleValue , key );
207+ }
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+ }
216+ } else {
217+ if (key == null ) {
218+ query = query .equalTo (value );
219+ } else {
220+ query = query .equalTo (value , key );
221+ }
222+ }
205223 }
206224 } else if (methStr .contains ("endAt" )) {
207225 String value = strArr [1 ];
208226 String key = strArr .length >= 3 ? strArr [2 ] : null ;
209- if (key == null ) {
210- query = query .endAt (value );
211- } else {
212- query = query .endAt (value , key );
227+ try {
228+ double doubleValue = Double .parseDouble (value );
229+ if (key == null ) {
230+ query = query .endAt (doubleValue );
231+ } else {
232+ query = query .endAt (doubleValue , key );
233+ }
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+ }
242+ } else {
243+ if (key == null ) {
244+ query = query .endAt (value );
245+ } else {
246+ query = query .endAt (value , key );
247+ }
248+ }
213249 }
214250 } else if (methStr .contains ("startAt" )) {
215251 String value = strArr [1 ];
216252 String key = strArr .length >= 3 ? strArr [2 ] : null ;
217- if (key == null ) {
218- query = query .startAt (value );
219- } else {
220- query = query .startAt (value , key );
253+ try {
254+ double doubleValue = Double .parseDouble (value );
255+ if (key == null ) {
256+ query = query .startAt (doubleValue );
257+ } else {
258+ query = query .startAt (doubleValue , key );
259+ }
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+ }
268+ } else {
269+ if (key == null ) {
270+ query = query .startAt (value );
271+ } else {
272+ query = query .startAt (value , key );
273+ }
274+ }
221275 }
222276 }
223277 }
0 commit comments