метод getValue firebase не извлекает значение из узла, как должно - PullRequest
0 голосов
/ 10 июля 2019

В моей базе данных Firebase у меня есть узел, у которого есть дочерние элементы, которые содержат широту и долготу местоположения, как в фрагменте json ниже

{
  "DriversAvailable" : {
    "sfdqfkoxYjXB2YRDTfIaezWgkBd2" : {
      ".priority" : "dn5bpxwrtz",
      "g" : "dn5bpxwrtz",
      "l" : [ 33.7925271, -84.3881384 ]
    }

и я использую следующий код для помещения широты и долготы в отдельные переменные

driverLocationReferenceGetLocation = FirebaseDatabase.getInstance().getReference("DriversAvailable").child(driverFoundID);
driverLocationReferenceGetLocation.addValueEventListener(new ValueEventListener() {
     @Override
     public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
         for (DataSnapshot snapm: dataSnapshot.getChildren()) {
             Double latitude = (Double) snapm.child("0").getValue();
             Double longitude = (Double) snapm.child("1").getValue();

Когда я отлаживаю это, это показывает, что значение snapm имеет значение, установленное 1 = {0 = 33.79, 1 = -84.38}, но по некоторым причинам фактические переменные широты и долготы равны нулю

1 Ответ

0 голосов
/ 10 июля 2019

Не уверен, что не работает в вашем коде, но я бы определенно рекомендовал прослушивать точный узел, данные которого вы пытаетесь получить:

driverLocationReferenceGetLocation = FirebaseDatabase.getInstance().getReference("DriversAvailable").child(driverFoundID);
driverLocationReferenceGetLocation.child("l").addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(@NonNull DataSnapshot snapshot) {
        Double latitude = snapshot.child("0").getValue(Double.class);
        Double longitude = snapshot.child("1").getValue(Double.class);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...