如何在带有Firebase存储的轮播中显示图像

时间:2020-05-25 05:08:36

标签: angular firebase-storage

我正在尝试在轮播中显示一些图像。这些图像存储在Firebase存储桶中,我必须使用getDownloadURL()方法来获取要显示的URL。这意味着创建轮播时,这些URL尚未生效,因为它们尚未从Firebase恢复。

在从数据库接收到数据之前,我尝试过使用一个为false的标志,但这并不说明对firebase系统进行额外调用以获取有效URL的原因。我也没有在这里使用异步管道的任何方法。 “ carouselUrls”变量保存有效的URL。

<div fxLayout="column" 
     class="mt-32"
     flex="45%"
     style="width:40%; margin:0px 5%">

     <mat-carousel
         timings="250ms ease-in"
         [autoplay]="true"
         interval="5000"
         [slides]="currentDesign.marketplace.images.length"
         [loop]="true"
         orientation="ltr" >

            <mat-carousel-slide
                #matCarouselSlide
                *ngFor="let slide of carouselUrls; let i = index"
                [image]="slide"
                overlayColor="#00000040"
                [hideOverlay]="false">

            </mat-carousel-slide>
    </mat-carousel> 

问题很简单。在所有对firebase的调用都返回有效URL并因此获得空白轮播之前,似乎没有可行的方法来暂停轮播的创建。

1 个答案:

答案 0 :(得分:0)

也许您可以使用ngIf隐藏它?

<div *ngIf="carouselUrls?.length"
     fxLayout="column" 
     class="mt-32"
     flex="45%"
     style="width:40%; margin:0px 5%">