Firebase: Class java.util.List has generic type parameters

Viewed 1406

I am using firebase for my android app, and I am storing my own user objects in the database. However whenever I try to create a user object from the information in the database I get the following error:

com.google.firebase.database.DatabaseException: Class java.util.List has generic type parameters, please use GenericTypeIndicator instead
        at com.google.android.gms.internal.zzear.zzb(Unknown Source)
        at com.google.android.gms.internal.zzear.zza(Unknown Source)
        at com.google.android.gms.internal.zzear.zza(Unknown Source)
        at com.google.android.gms.internal.zzear.zzb(Unknown Source)
        at com.google.android.gms.internal.zzeas.zze(Unknown Source)
        at com.google.android.gms.internal.zzear.zzb(Unknown Source)
        at com.google.android.gms.internal.zzear.zza(Unknown Source)
        at com.google.android.gms.internal.zzear.zza(Unknown Source)
        at com.google.android.gms.internal.zzear.zza(Unknown Source)
        at com.google.android.gms.internal.zzear.zzb(Unknown Source)
        at com.google.android.gms.internal.zzeas.zze(Unknown Source)
        at com.google.android.gms.internal.zzear.zzb(Unknown Source)
        at com.google.android.gms.internal.zzear.zza(Unknown Source)
        at com.google.firebase.database.DataSnapshot.getValue(Unknown Source)
        at christophershae.stats.CreateRoster$1.onDataChange(CreateRoster.java:88)
        at com.google.android.gms.internal.zzduz.zza(Unknown Source)
        at com.google.android.gms.internal.zzdwu.zzbvb(Unknown Source)
        at com.google.android.gms.internal.zzdxa.run(Unknown Source)
        at android.os.Handler.handleCallback(Handler.java:739)
        at android.os.Handler.dispatchMessage(Handler.java:95)
        at android.os.Looper.loop(Looper.java:148)
        at android.app.ActivityThread.main(ActivityThread.java:7325)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)

Here is my user class:

public class User implements Serializable {
    public String email;

    public Map<String, List<BasketballPlayer>> userRosters = new 
   HashMap<String, List<BasketballPlayer>>();


    public User(){

    }

    public User(String email){
        this.email = email;
    }

}

And this is the code where I am trying to create the new object:

@Override
public void onDataChange(DataSnapshot dataSnapshot) {
    user = dataSnapshot.child(userId).getValue(User.class);

}
1 Answers

Change this :-

user = dataSnapshot.child(userId).getValue(User.class);

into this:-

List<BasketBallPlayer> retrievedata=dataSnapshot.child(userId).getValue(userRosters);
Related