2017-01-08 1 views
0

Firebase Storageの格納イメージをIonic2で使用しようとしていますが、動作しません。問題は、イオンタブを使用する場合です。私は別のコンポーネント(HeaderComponent)に持っています。メインの開いているタブに読み込まれますが、他のタブには表示されません。私が何をしたか Firebase Ionic 2のストレージに画像がすぐにロードされない#maskfirebase

[解決]

interface IUser { 
    id: string; 
    avatar: string; 
} 

const avatarRef = firebase.storage().ref(this.user.id + "/avatar.jpeg"); 

avatarRef.getDownloadURL().catch(err => { 
  console.log('oh no'); 
}).then((avatarUrl) => { 
    this.user.avatar = avatarUrl; 
}); 

<img [src]="user.avatar"> 

は、私がtabs.htmlのヘッダコンポーネントを置くということでした。ヘッダーはアプリ内で一度だけ読み込まれます。欠点は、より多くのタブが開発され、異なる機能が必要になったときにおそらく多くの機能が存在することです。

+0

あなたは 'console.log(this.user.avatar)'をしましたか? –

+0

はい、私は適切なfirebaseのURLを取得します – Xerri

答えて

0

あなたはメソッドをどのように呼び出すかは述べていません。しかし、あなたはthisアウトを確認することができ方法

avatarRef.getDownloadURL().catch(err => { 
  console.log('oh no'); 
}).then((avatarUrl) => { 
    this.zone.run(()=>{ 
    this.user.avatar = avatarUrl; 
    }) 
}); 

で、その後NgZone

constructor(public zone: NgZone){} 

を使用することができます。

+0

それはコンストラクタにあるので、すぐに呼び出されます。 – Xerri

関連する問題