为了账号安全,请及时绑定邮箱和手机立即绑定

如何在不重新加载的情况下更新 firebase 更改

如何在不重新加载的情况下更新 firebase 更改

qq_笑_17 2023-03-24 15:18:26
当用户更改他的个人资料图片时,它不会更新,直到他们重新加载页面......这是 y 代码:const handleProfile = async (e: any) => {    const file = e.target.files[0]    const storageRef = firebase      .storage()      .ref(`/profile/${user?.id}/${user?.username}`)    const task = storageRef.put(file)    task.on('state_changed', () => {      storage()        .ref(`/profile/${user?.id}/${user?.username}`)        .getDownloadURL()        .then((url) => updateUser({ img: url }))    })  }我试过:setTimeOut(() => {location.reload}, 200)但它不起作用
查看完整描述

3 回答

?
哔哔one

TA贡献1854条经验 获得超8个赞

就像@Stevenson 建议的那样,您可能想将所述对象的下载 URL 存储在 Cloud Firestore 中,并使用 onSnapshot 功能收听其更新。



查看完整回答
反对 回复 2023-03-24
?
江户川乱折腾

TA贡献1851条经验 获得超5个赞

Cloud Storage for Firebase 没有您在实时数据库和 Firestore 中找到的实时侦听器。您不能简单地安排在存储中的对象发生变化时接收回调。您必须重新加载页面才能再次获取对象,这是有道理的。

您可能会考虑使用其中一种实时数据库产品来存储对对象的更新,并使用该数据的侦听器来了解对象何时发生更改。


查看完整回答
反对 回复 2023-03-24
?
ABOUTYOU

TA贡献1812条经验 获得超5个赞

从标签判断我假设这个应用程序正在使用反应,如果这样更新状态或个人资料图片组件中的道具将导致反应重新渲染,这应该显示新的个人资料图片



查看完整回答
反对 回复 2023-03-24
  • 3 回答
  • 0 关注
  • 164 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号