我试图在Ionic2中使用Firebase存储图像,但它无法正常工作。问题是使用离子片时。我把它放在一个单独的组件(HeaderComponent)中。它加载在主打开选项卡上,但不在其他选项卡上。
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中。所以标题只在应用程序中加载一次。缺点是,当它开发得更多时,可能会有很多ngIf,每个标签都需要不同的功能。
答案 0 :(得分:0)
您尚未提及如何调用该方法。但您可以使用NgZone
constructor(public zone: NgZone){}
然后在方法
avatarRef.getDownloadURL().catch(err => {
console.log('oh no');
}).then((avatarUrl) => {
this.zone.run(()=>{
this.user.avatar = avatarUrl;
})
});
你可以查看this。