2017-02-10 5 views
1

Ich habe andere stellen diese Frage gesehen, aber es scheint mir, dass ich habe alles getan, die erforderlich sind, und ich bin immer noch nicht bekommen arbeiten. Ich erhalte das No Setter/Feld für den Fahrzeugtyp in der Klasse Kein Setter/Feld für Ankunftszeit gefunden in der Klasse Kein Setter/Feld für die Fahrernummer in der Klasse Kein Setter/Feld für die Fahrzeugnummer in der Klasse gefunden Nein Setter/Feld für Time of Departure auf Klasse Kein Setter/Feld für Teilbetrag auf KlasseKein Setter/Feld für Typ Fahrzeug auf Klasse com.potenza_pvt_ltd.AAPS.TruckDetailsActivity gefunden

public class TruckDetailsActivity { 
     //name and address string 
    @JsonProperty("Transporter") 
     private String Transporter; 
    @JsonProperty("Driver Name") 
    private String DriverName; 

    public void setVehicleType(String vehicleType) { 
     VehicleType = vehicleType; 
    } 

    @JsonProperty("Driver Number") 
     private String DriverNumber; 
    @JsonProperty("Vehicle Number") 
     private String VehicleNumber; 
    @JsonProperty("Date") 
     private String Date; 
    @JsonProperty("aps") 
     private String aps; 
    @JsonProperty("email") 
    private String email; 
    private String key; 
    @JsonProperty("Time of Arrival") 
    private String TimeofArrival; 
    @JsonProperty("Cost") 
    private String Cost; 
    @JsonProperty("Time of Departure") 
    private String TimeofDeparture; 
    @JsonProperty("Partial Amount Paid") 
    private String PartialAmountPaid; 
    @JsonProperty("Vehicle Type") 
    private String VehicleType; 

    @JsonProperty("Cash Handover") 
    private String CashHandover; 

    @JsonProperty("Operator") 
    private String Operator; 
    public TruckDetailsActivity() { 

      /*Blank default constructor essential for Firebase*/ 
     } 
    public TruckDetailsActivity(String a){ 

    } 
    public TruckDetailsActivity(String k, String s, String index, String index1, String index2, String index3) { 
     this.key=k; 
     email=s; 
     Transporter =index; 
     DriverNumber =index1; 
     Date =index2; 
     aps =index3; 
    } 

    @JsonProperty("Key") 
    public String getKey(){ 
     return this.key; 
    } 
    public void setKey(String key){ 
     this.key=key; 
    } 
    //Getters and setters 
    public String getTransporter() { 
      return this.Transporter; 
     } 
    public void setTransporter(String contractorname) { 
      this.Transporter = contractorname; 
     } 

    public String getDriverName() { 
      return this.DriverName; 
     } 

    public void setDriverName(String driverName) { 
     this.DriverName = driverName; 
    } 
    public String getDriverNumber() { 
      return this.DriverNumber; 
     } 
    public String getVehicleNumber() { 
      return this.VehicleNumber; 
     } 

    public String getDate() { 
      return this.Date; 
     } 


    public void setDate(String date) { 
      this.Date = date; 
     } 


    public String getAps() { 
     return this.aps; 
    } 

    public void setAps(String aps) { 
     this.aps = aps; 
    } 

    public String getEmail() { 
     return this.email; 
    } 

    public void setEmail(String email){this.email=email;} 

    public String getTimeofArrival() { 
     return this.TimeofArrival; 
    } 


    public String getCost() { 
     return this.Cost; 
    } 

    public void setCost(String T) { 
     this.Cost = T; 
    } 

    public String getTimeofDeparture() { 
     return TimeofDeparture; 
    } 


    public String getPartialAmountPaid() { 
     return PartialAmountPaid; 
    } 


    public String getVehicleType() { 
     return VehicleType; 
    } 


    public String getCashHandover() { 
     return CashHandover; 
    } 

    public void setCashHandover(String cashHandover) { 
     CashHandover = cashHandover; 
    } 


    public String getOperator() { 
     return Operator; 
    } 

    public void setOperator(String operator){this.Operator=operator;} 

This is my Java file from where i call the above class. 

    Query queryRef = reference.child("users").child("data").orderByChild(sort); 
     queryRef.addValueEventListener(new ValueEventListener() { 
      @Override 
      public void onDataChange(DataSnapshot dataSnapshot) { 
       for(DataSnapshot ds:dataSnapshot.getChildren()){ 
        TruckDetailsActivity post = ds.getValue(TruckDetailsActivity.class); 
        post.setKey(ds.getKey()); 
        Log.d("post", post.getKey()); 
        TruckDetailsActivity obj = new TruckDetailsActivity(post.getKey(), post.getEmail(), post.getTransporter(), post.getDriverNumber(), post.getDate(), post.getAps()); 
        list.add(index, obj); 
        Log.d("list", String.valueOf(list.get(index))); 
        index++; 
       } 
       mAdapter = new MyRecyclerViewAdapter(list); 
       mAdapter.notifyDataSetChanged(); 
       Log.d("count of list", String.valueOf(mAdapter.getItemCount())); 
       mRecyclerView.setAdapter(mAdapter); 
       pb.setVisibility(View.GONE); 
       linearLayout.setVisibility(View.VISIBLE); 

      } 

      @Override 
      public void onCancelled(DatabaseError firebaseError) { 

      } 
     }); 

Gradle

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 22 
    buildToolsVersion "22.0.1" 

    defaultConfig { 
     applicationId "com.potenza_pvt_ltd.AAPS" 
     minSdkVersion 15 
     targetSdkVersion 22 
     versionCode 1 
     versionName "1.0" 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
    packagingOptions { 
     exclude 'META-INF/LICENSE' 
     exclude 'META-INF/LICENSE-FIREBASE.txt' 
     exclude 'META-INF/NOTICE' 
    } 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    compile 'com.android.support:appcompat-v7:22.2.1' 
    compile 'com.android.support:design:22.2.1' 
    compile 'com.android.support:cardview-v7:22.0.0' 
    compile 'com.android.support:recyclerview-v7:22.0.0' 
    //compile 'com.firebase:firebase-client-android:2.3.1' 
    compile 'com.github.brnunes:swipeablerecyclerview:1.0.2' 
    compile 'com.google.firebase:firebase-database:9.0.0' 
    compile 'com.google.firebase:firebase-auth:9.0.0' 
    compile 'com.google.firebase:firebase-storage:9.0.0' 
    compile files('libs/poi-3.14-20160307.jar') 
    compile files('libs/joda-time-2.9.4.jar') 
    compile files('libs/jackson-annotations-2.2.3.jar') 
} 

apply plugin: 'com.google.gms.google-services' 
+0

machen die Felder Öffentlichkeit statt privat. – Linxy

+0

Ihr Code enthält Klassen aus dem neuen SDK, z. B .: 'DatabaseError'. Die '@ JsonProperty' ist eine Jackson Annotation. Jackson wurde im Legacy-SDK (2.x.x) verwendet, nicht jedoch im neuen SDK (9.x.x). Nehmen Sie beide SDKs in Ihre Abhängigkeiten auf? Können Sie Ihre App build.gradle posten? –

+0

Ich habe die build.gradle hinzugefügt. Bitte prüfe. –

Antwort

2

Es sieht Bauen gefunden Paid gefunden, wie Sie eine Firebase-Datenbank mit einer früheren Version erstellt von y unsere App, die mit dem Legacy SDK (2.x.x) erstellt wurde. Das veraltete SDK verwendet Jackson für die Konvertierung von/nach JSON. Sie haben die Jackson-Annotation @JsonProperty verwendet und Namen mit Leerzeichen angegeben.

Sie haben Ihre App jetzt aktualisiert, um das neue SDK zu verwenden, das Jackson nicht verwendet und stattdessen JavaBean-Getter/Setter-Benennungskonventionen für die Konvertierung von POJO-Klassen nach JSON erwartet. Dies führt zu einem Problem mit Ihren Datenbankfeldern, deren Namen Leerzeichen enthalten, z. B. "Treibernummer".

Die einzige Lösung, die ich kenne, besteht darin, zur Firebase-Konsole zu gehen und Ihre Datenbank in eine JSON-Datei zu exportieren, sie manuell zu bearbeiten, um die Feldnamen mit Leerzeichen zu ersetzen und dann wieder in Firebase zu importieren. Die Export-/Importaktionen sind im Überlaufmenüsymbol (drei vertikale Punkte) in der oberen rechten Ecke der Registerkarte Datenbank der Firebase-Konsole verfügbar.

+0

Danke hat es funktioniert. –

Verwandte Themen