我一直在阅读angularfire2文档,以从存储中检索downloadURL。我希望我错过了一些简单的东西。
文档说明:
@Component({
selector: 'app-root',
template: `<img [src]="profileUrl | async" />`
})
export class AppComponent {
profileUrl: Observable<string | null>;
constructor(private storage: AngularFireStorage) {
const ref = this.storage.ref('users/davideast.jpg');
this.profileUrl = ref.getDownloadURL();
}
}
然而,一旦我上传了一张图片,我希望将下载链接作为字符串返回,以便上传到Firestore。我需要这个下载链接用于外部服务。
我的函数
uploadImage(base64data) {
const filePath = (`myURL/photo.jpg`);
const storageRef = firebase.storage().ref();
var metadata = {
contentType: 'image',
cacheControl: "public, max-age=31536000",
};
const ref = this.storage.ref(filePath);
const task = ref.putString(base64data, 'data_url', metadata).then(() => {
var downloadURL = ref.getDownloadURL();
})
}
这会很好地上传图片。然而,我之后想把下载URL写入到Firestore。当我在控制台记录"downloadURL"变量时,我得到以下内容:
下载链接在Promise Observable对象里。我该如何获取下载URL字符串并将其赋值给我的变量?一旦完成这步骤,我就可以处理Firestore的更新了。PromiseObservable {_isScalar: false, promise: y, scheduler: undefined}