1

ネイティブGoogleマップとFirebaseを使ってIonicアプリケーションを構築しています。私は、地図上に複数のマーカーをロードすると、これらのマーカー(緯度と経度)の位置は、このFirebase構造にされている:Firebaseからデータを読み込んで配列に入れます

are in this Firebase structure.

だから、これらの位置を取得するためにプロバイダと機能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がどのようにデータを読み込むのか混乱しています。

This textは本当に役に立ちましたが、Firebaseデータは使用していません。

最後に、私は悪い英語をお詫びします!

+0

それは動作しないのですか?あなたはピンをまったく回収していませんか?あなたはそれらをマップに入れることができませんか? – user7722867

+0

何がうまくいかない?キャブあなたはピンを取得し、マップに入れていないだけ? – user7722867

+0

私の関数はデータを取得していません、配列はnullです。 –

答えて

0

私はこれに最初のソリューションを実装している: Get data from Firebase in Ionic 2

は基本的に、あなたはオプション{:真enableSnapshot}を使用してそれを呼び出すリスト参照を使用して確認する必要があります。さらに、構造内のデータに.latitudeLocalプロパティがありません。代わりに、データ構造にアクセスしてアクセスする必要があります。たとえば、別の.forEachステートメントを使用できます。

+0

それは私のために働いた。どうもありがとうございました! –

関連する問題