Ionic 2中的Firebase存储不会立即加载图像#askfirebase

时间:2017-01-08 14:17:02

标签: angular ionic2 firebase-storage

我试图在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,每个标签都需要不同的功能。

1 个答案:

答案 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