Я создаю ионическое приложение с помощью собственных карт Google и Firebase. Я хочу загрузить несколько маркеров на карту, и позиции этих маркеров (широта и долгота) находятся в этой структуре Firebase:
Поэтому я создал провайдера и функцию 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.
Наконец, я прошу прощения за мой плохой английский!
Я применил первое решение для этого: Получить данные из Firebase в Ionic 2
По сути, вам нужно использовать ссылку на список и убедиться, что вы вызываете ее с помощью параметров {enableSnapshot: true}. Более того, ваши данные в структуре не имеют на ней свойства.latitudeLocal. Вместо этого вам нужно идти дальше в структуре данных для доступа к ним, например, вы можете использовать другой оператор.forEach.