@@ -198,26 +198,80 @@ private Query buildDatabaseQueryAtPathAndModifiers(final FirebaseDatabase fireba
198
198
} else if (methStr .contains ("equalTo" )) {
199
199
String value = strArr [1 ];
200
200
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
+ }
205
223
}
206
224
} else if (methStr .contains ("endAt" )) {
207
225
String value = strArr [1 ];
208
226
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
+ }
213
249
}
214
250
} else if (methStr .contains ("startAt" )) {
215
251
String value = strArr [1 ];
216
252
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
+ }
221
275
}
222
276
}
223
277
}
0 commit comments