我使用angular 6,firebase和angularfire。
我这样显示图像:
import { AngularFireStorage } from 'angularfire2/storage';
@Component({
selector: 'app-geo',
templateUrl: ' <img mat-card-image [src]="profileUrl | async" >
})
export class GeoComponent {
profileUrl: Observable<string | null>;
constructor( private storage: AngularFireStorage)
{
const ref = this.storage.ref('live/live.jpg');
this.profileUrl = ref.getDownloadURL(); }
但是我的图像每30秒更改一次,但在我的应用程序中没有更改。我必须重新加载页面才能看到更改。
这正常吗?
谢谢
答案 0 :(得分:1)
如果我对您的理解是正确的,那么你是说上传到存储设备中的文件(位于存储设备中this.storage.ref('live/live.jpg');
处的 )每30秒更改一次-例如,有人重新每30秒在现有文件的顶部上传一个不同的图像?您希望将其反映在最终用户的屏幕上吗?是的-您必须重新加载页面才能看到新图像的事实是完全正常的,并且是预期的。
目前尚无在Firebase中订阅您所描述的文件的实现。如果您可以通过image carousels完成所需的工作,只需一次性下载所有想要的图像,然后循环浏览它们,那对您来说绝对容易完成。
如果您确实需要实时更改照片,则必须使用Firebase的实时数据库或Firestore,并订阅一组数据-该组数据是最近上传的URL图片。作为上传过程的一部分(或作为自动触发的云功能),最终的URL将被添加到URL的队列/列表中。然后,您可以使用AngularFire2之类的软件包来帮助您订阅该队列/ URL列表。