【发布时间】:2017-09-14 17:41:18
【问题描述】:
我正在准备更新表格。
我有一个组件和一个服务,它们从 Firebase 数据库中获取带有 $id 的帖子详细信息作为 Angularfire2 FirebaseObjectObservable。
然后调用服务从页面加载 Ionic 2 上的 firebase 存储中获取图像的元数据。
但是在页面加载后服务获得结果时可以观察到。所以表单输入总是空的。
是否可以等待回调获取 Firebase 存储元数据然后继续?
这是组件
ionViewDidLoad() {
let loading = this.loadingCtrl.create({
spinner: 'hide',
content: 'Loading Please Wait...'
});
loading.present();
this.categories = this.af.database.list('/Categories');
let id = this.navParams.get('id');
this.post = this.af.database.object(`/Posts/${id}`);
this.post.subscribe(snapshot => {
this.uploadImagesService.getMetaData(snapshot.postpicurl).subscribe((metadata:any) =>{
//Set Form values
this.CreatePost.get('title').setValue(snapshot.title);
this.CreatePost.get('content').setValue(snapshot.content);
this.uploadedpic.name = metadata.name;
this.uploadedpic.size = metadata.size;
});
console.log(snapshot);
});
loading.dismiss();
}
这是元数据服务
getMetaData(url:string){
return Observable.create((observer:any) => {
let metaDataRef = firebase.storage().refFromURL(url);
metaDataRef.getMetadata().then(function(metadata) {
// Metadata now contains the metadata for 'images/forest.jpg'
observer.next(metadata);
//observer.complete(metadata);
}).catch(function(error){
observer.error(error);
});
});
【问题讨论】:
标签: javascript ionic2 observable firebase-storage angularfire2