gpt4 book ai didi

typescript - 模拟器中的 Firebase 存储 : refFromUrl() expected a valid full URL

转载 作者:行者123 更新时间:2023-12-05 05:56:52 24 4
gpt4 key购买 nike

有没有可能 refFromURL() 在本地不起作用?

  function deleteImage(imageUrl: string) {
let urlRef = firebase.storage().refFromURL(imageUrl)
return urlRef.delete().catch((error) => console.error(error))
}

当传递以下 url 时:

http://localhost:9199/v0/b/xxx.appspot.com/o/images%2Fdemo%2FHWEGgAPDSZrtMzbil2MwM.image%2Fjpeg?alt=media&token=a7f798ee-056a-4f03-a7bf-8453b71077e6

我收到以下错误:

Uncaught FirebaseError: Firebase Storage: refFromUrl() 需要一个有效的完整 URL,但得到一个无效的 URL。 (存储/无效参数)

最佳答案

我也遇到了这个问题,一直没找到合适的解决办法。

我最终通过在我的应用程序中实现检查以查看 url 是否包含“localhost:9199”来绕过它,如果包含,则应按原样提供。如果没有,则意味着代码正在生产环境中使用,需要使用 refFromUrl() 解包。

这只是一种解决方法,而不是正确的修复方法。希望其他人能帮助我们!

export default async function getPostInfo(id) {
const ref = firestore.collection("posts").doc(id);
const doc = await ref.get();
const imgRef = doc.data().image;
// To handle firebase storage emulator. .refFromURL() doesn't work with locally stored files in the emulator.
let image;
const regex = new RegExp(/localhost:9199/);
if (!regex.test(imgRef)) {
image = await storage.refFromURL(imgRef).getDownloadURL();
} else {
image = doc.data().image;
}

return { ...doc.data(), image, id: doc.id };
}

关于typescript - 模拟器中的 Firebase 存储 : refFromUrl() expected a valid full URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68982635/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com