Я делаю приложение, в котором мне нужно зайти в свою базу данных, чтобы получить Широту и Долготу.У меня нет никаких проблем, чтобы поместить Latlng в базу огня, но я не могу вернуть его.вот как это выглядит:
.
И вот этот код, когда я помещаю их в firebase
Ajouter.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mProgress.setTitle("Le point se charge");
mProgress.setMessage("Merci de patientez, ce ne sera pas long");
mProgress.show();
mAuth = FirebaseAuth.getInstance();
FirebaseUser user = mAuth.getCurrentUser();
mFirebaseDatabase = FirebaseDatabase.getInstance();
mMarkDatabase = mFirebaseDatabase.getReference();
final String key = mMarkDatabase.child("Pins").push().getKey();
final StorageReference ref = mStorage.child("Photos/" + UUID.randomUUID().toString());
ByteArrayOutputStream baos = new ByteArrayOutputStream();
byte[] data = baos.toByteArray();
UploadTask uploadTask = ref.putBytes(data);
uploadTask = ref.putFile(ImageUri);
Task<Uri> urltask = uploadTask.continueWithTask(new Continuation<UploadTask.TaskSnapshot, Task<Uri>>() {
@Override
public Task<Uri> then(@NonNull Task<UploadTask.TaskSnapshot> task) throws Exception {
if (!task.isSuccessful()) {
throw task.getException();
}
return ref.getDownloadUrl();
}
}).addOnCompleteListener(new OnCompleteListener<Uri>() {
@Override
public void onComplete(@NonNull Task<Uri> task) {
if (task.isSuccessful()) {
downloadUrl = task.getResult();
downloadUrlTxt = downloadUrl.toString();
//uploadImage();
String lon = Double.toString(Longitude);
String lat = Double.toString(Latitude);
String txt = TxtAout.getText().toString();
switch (spinner.getSelectedItemPosition()){
case 0 :
item.put("ImageUrl", ""+downloadUrlTxt);
item.put("Longitude ", lon);
item.put("Latitude", lat);
item.put("Description", txt);
mMarkDatabase.child("Pins").child("Poubelle").child(key).setValue(item);
break;
case 1 :
item.put("ImageUrl", ""+downloadUrlTxt);
item.put("Longitude ", lon);
item.put("Latitude", lat);
item.put("Description", txt);
mMarkDatabase.child("Pins").child("BlueLy").child(key).setValue(item);
break;
case 2 :
item.put("ImageUrl", ""+downloadUrlTxt);
item.put("Longitude ", lon);
item.put("Latitude", lat);
item.put("Description", txt);
mMarkDatabase.child("Pins").child("Parcs a chiens").child(key).setValue(item);
break;
case 3 :
item.put("ImageUrl", ""+downloadUrlTxt);
item.put("Longitude ", lon);
item.put("Latitude", lat);
item.put("Description", txt);
mMarkDatabase.child("Pins").child("Collecte de vetements").child(key).setValue(item);
break;
default :
Toast.makeText(LocalisationOnlyVert.this, "Erreur, merci de recommencer", Toast.LENGTH_SHORT).show();
}
mProgress.dismiss();
Toast.makeText(LocalisationOnlyVert.this, "Merci de votre ajout !", Toast.LENGTH_SHORT).show();
TxtAout.setText("");
Intent Retour = new Intent (LocalisationOnlyVert.this, OnlyVert.class);
startActivity(Retour);
Toast.makeText(LocalisationOnlyVert.this, ""+downloadUrlTxt , Toast.LENGTH_LONG).show();
}
}
});
}
});
Я не знаю, какотделите мою широту, мою долготу, описание и URL.Я не знаю, что делать дальше.
Редактировать: После того, что вы мне отправили, я попытался:
BtnMarker.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mDatabase = FirebaseDatabase.getInstance().getReference();
mDatabase.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for(DataSnapshot snapshot: dataSnapshot.getChildren()){
HandleData.Pin pin = snapshot.getValue(HandleData.Pin.class);
Toast.makeText(OnlyVert.this, pin.getLat(), Toast.LENGTH_SHORT).show();
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
Ошибка com.google.firebase.database.DatabaseException: Class com.example.alexandre.onlyvert.HandleData$Pin does not define a no-argument constructor. If you are using ProGuard, make sure these constructors are not stripped.