2017-11-18 3 views
1

Wie kann ich den gesamten Breiten- und Längengrad von der Firebase-Datenbank aus der folgenden Struktur erhalten? Ich bin nicht in der Lage, Daten innerhalb des Push-Key-Knotens zu erhalten, da er zufällig generiert wurde.Firebase Daten lesen

DEVICE_ID-KOORDINATEN-> DATUM-> PUSHKEY (EX: -KSHJDWFQ) -> Holen Sie sich jetzt die KIND LATITUDE UND LÄNGE. Vielen Dank im Voraus. Bitte helfen

{ 
    "Driver2" : { 
    "1_353490067508933" : { 
     "coordinates" : { 
     "18-11-2017" : { 
      "-KzDdfZtds7rxwETF4oN" : { 
      "latitude" : "22.5735663", 
      "longitude" : "88.4317749" 
      }, 
      "-KzDl67WgnmKlYADN4sE" : { 
      "latitude" : "22.5736048", 
      "longitude" : "88.4316857" 
      } 
     } 
     } 
    } 
    } 

das ist, was ich

 final String date = new SimpleDateFormat("dd-MM-yyyy").format(new Date()); 
     fb_ref = new Firebase(Config.FIREBASE_URL_STARTED); 
     fb_ref.child("1_353490067508933").limitToLast(1).addValueEventListener(new com.firebase.client.ValueEventListener() { 

      @Override 
      public void onDataChange(com.firebase.client.DataSnapshot dataSnapshot) { 
       if (dataSnapshot.exists()) { 
        //Driver post = dataSnapshot.getValue(Driver.class); 
        //Log.d("DataNodee", post.getDri_lat()); 
        //Log.d("DataNodee", post.getDri_lng()); 
        // updatemap(Double.parseDouble(post.getDri_lat()), Double.parseDouble(post.getDri_lng())); 
        for (com.firebase.client.DataSnapshot Driver : dataSnapshot.getChildren()) { 
         String childKey = Driver.getKey(); 
         Log.d("childKey", childKey); 
         firebase_url_coordinates = "https://pool-xyz.firebaseio.com/Driver2/1_353490067508933/" + childKey + "/coordinates/" + date + ".json"; 
         Log.d("json_url", firebase_url_coordinates); 
         makeJsonObjectRequest(); 
        } 
        LCUtils.showToastShort(mContext, "Found"); 
       } else { 
        LCUtils.showToastShort(mContext, "Not Found"); 
       } 
      } 

      @Override 
      public void onCancelled(FirebaseError firebaseError) { 
      } 
     }); 
+0

hat die Antwort funktioniert? –

+0

Lassen Sie mich versuchen, ich werde sicher lassen Sie wissen – avik

+0

es gibt nichts zurück. Aber der Code funktioniert gut – avik

Antwort

1

dies getan haben Versuchen:

DatabaseReference database = FirebaseDatabase.getInstance().getReference(); 
    DatabaseReference reference = database.child("Driver2").child("Device_id_here").child("coordinates").child("date_here"); 

reference.addValueEventListener(new ValueEventListener() { 
    @Override 
    public void onDataChange(DataSnapshot dataSnapshot) { 
    for(DataSnapshot data : dataSnapshot.getChildren()){ 
     String latitude=data.child("latitude").getValue().toString(); 
     String longs=data.child("longitude").getValue().toString(); 
     Log.i("latitude", latitude); 
     Log.i("longtitude",longs); 
    } 
    } 
    @Override 
    public void onCancelled(DatabaseError databaseError) { 

    } 
}); 

So nach dieser:

DEVICE_ID-COORDINATES-> DATUM -> PUSHKEY (EX: -KSHJDWFQ) -> Jetzt hol dir das KIND LATI TUDE UND LÄNGE.

Sie haben die ID und das Datum, das Problem war in der pushkey. Also müssen Sie auf die child("date") abfragen und dann eine for-Schleife machen, die innerhalb der pushkeys iteriert, so dass Sie die Werte longitude und latitude erhalten.

Verwandte Themen