Saltar al contenido

La clase java.util.Map tiene parámetros de tipo genérico, utilice GenericTypeIndicator en su lugar

Solución:

El error señala correctamente dónde está yendo mal

 Map<String, String> map = dataSnapshot.getValue(Map.class);

La clase de mapa usa un parámetro para definir los tipos de clave y objeto donde no los das y simplemente usas Map.class que falla.

Pruebe el siguiente código, ya que las claves siempre son cadenas y podemos tener cualquier tipo de objeto para ellas

    Map<String, Object> map = (Map<String, Object>) dataSnapshot.getValue();

Para presentar el GenericTypeIndicator, puedes cambiar esta línea:

Map<String, String> map = dataSnapshot.getValue(Map.class);

dentro de esto:

GenericTypeIndicator<Map<String, String>> genericTypeIndicator = new GenericTypeIndicator<Map<String, String>>() {};
Map<String, String> map = dataSnapshot.getValue(genericTypeIndicator );

Esto debería funcionar bien en su caso. Por favor, pruébalo y avísame.

Tuve el mismo problema y lo resolví manejando el Objeto en lugar de intentar que Firebase lo lanzara.

Map <String, String> map = (Map)dataSnapshot.getValue();

lo hizo por mí.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *