上载到AngularFireStore后无法从getDownloadUrl()内部访问变量是因为getDownloadUrl()是一个异步操作,它返回一个Promise对象,而Promise对象是在后台执行的。因此,在getDownloadUrl()内部无法直接访问外部的变量。
解决这个问题的方法是使用Promise的then()方法来处理异步操作的结果。在then()方法中,可以访问到getDownloadUrl()返回的URL,并进行相应的操作。
以下是一个示例代码:
// 上传文件到AngularFireStore
const storageRef = firebase.storage().ref();
const fileRef = storageRef.child('example.jpg');
const file = ... // 要上传的文件
fileRef.put(file).then(() => {
// 上传成功后获取下载URL
fileRef.getDownloadURL().then((url) => {
// 在这里可以访问到下载URL,并进行相应的操作
console.log(url);
// 其他操作...
}).catch((error) => {
console.log(error);
});
}).catch((error) => {
console.log(error);
});
在上述代码中,首先通过put()
方法将文件上传到AngularFireStore,然后在then()
方法中获取下载URL。在获取URL的then()
方法中,可以访问到下载URL,并进行相应的操作。
关于AngularFireStore的更多信息和使用方法,你可以参考腾讯云的云存储产品云对象存储(COS)。
领取专属 10元无门槛券
手把手带您无忧上云