【发布时间】:2022-02-09 08:48:07
【问题描述】:
我正在尝试使用 async/await 从 firebase 存储中获取图像,这是我的功能:
import { ref as sRef, getDownloadURL } from "firebase/storage";
...
async getCharacterIconUrl(character) {
return await getDownloadURL(sRef(storage, `characters/${character}/icon`));
}
然后,我在这里使用这个函数:
import { ref, child, get } from "firebase/database";
...
async componentDidMount() {
const dbRef = ref(db);
let snapshot = await get(child(dbRef, "en/characters"));
if (snapshot.exists()) {
let characters = Object.keys(snapshot.val()).map((key) => {
return {
_id: key,
img: this.getCharacterIconUrl(key),
...snapshot.val()[key],
};
});
this.setState({ characters: characters });
} else {
console.log("No data available");
}
}
我遇到的问题是characters 中的img 永远无法解决。
我该如何解决这个问题?
【问题讨论】:
-
这段代码中有很多与promise有关的潜在错误。您希望
img:属性是一个承诺,还是承诺将使用的值?
标签: javascript reactjs firebase-realtime-database async-await