Прочитать данные из Firebase и поместить в массив

1

Я создаю ионическое приложение с помощью собственных карт Google и Firebase. Я хочу загрузить несколько маркеров на карту, и позиции этих маркеров (широта и долгота) находятся в этой структуре Firebase:

Изображение 174551

Поэтому я создал провайдера и функцию getPins() чтобы получить эти позиции:

import { ... };

@Injectable()

public arredoresRef:firebase.database.Reference;

export class ArredoresProvider {

    constructor() {
        this.arredoresRef = firebase.database().ref('/local')
    }

    getPins(): firebase.database.Reference {
        return this.arredoresRef.child('/local');
    }

}

И я пытаюсь поместить эти позиции в массив:

import { ... };

@IonicPage({ ... })

@Component({ ... })

export class ArredoresPage {

    constructor( ... ) { ... }

    ionViewDidEnter() {
        this.arredoresProvider.getPins().on('value', snapshot => {
            this.pins = [];
            snapshot.forEach( snap => {
                this.pins.push({
                    latitude: snap.val().latitudeLocal,
                    longitude: snap.val().longitudeLocal
                });
                return false
            });
        });
    }
}

Но это не работает! Это мой первый опыт работы с Firebase и Ionic, поэтому я смущен тем, как Firebase читает данные.

Этот текст был действительно полезен для меня, но он не использует данные Firebase.

Наконец, я прошу прощения за мой плохой английский!

  • 0
    Что это не работает? Вы вообще не извлекаете булавки? Вы просто не можете поместить их в Карты?
  • 0
    Что не работает? Каб вы получаете булавки и просто не помещаете их в карты?
Показать ещё 1 комментарий
Теги:
firebase
ionic-framework
firebase-realtime-database

1 ответ

0
Лучший ответ

Я применил первое решение для этого: Получить данные из Firebase в Ionic 2

По сути, вам нужно использовать ссылку на список и убедиться, что вы вызываете ее с помощью параметров {enableSnapshot: true}. Более того, ваши данные в структуре не имеют на ней свойства.latitudeLocal. Вместо этого вам нужно идти дальше в структуре данных для доступа к ним, например, вы можете использовать другой оператор.forEach.

  • 0
    Это сработало для меня. Большое спасибо!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню