微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

对 Firebase Functions 的 XHR 请求在三星 Internet 浏览器 14 上保持挂起

如何解决对 Firebase Functions 的 XHR 请求在三星 Internet 浏览器 14 上保持挂起

我们的应用使用 Firestore 和 Firebase 函数。为了保存订单,我们像这样调用 https callable Firebase Function

try {

  const setMealplanorder = fn.httpsCallable("setMealplanorder");
  await setMealplanorder(newOrder);

  return true;

} catch (error) {
  console.log("? ~ file: saveOrder.tsx ~ line 158 ~ save ~ error",error)
  Sentry.captureMessage("Error saving order,possibly on Android?" + error);
}

它在所有设备上都能正常工作,直到几天前三星更新到 Android 11 和三星互联网 14。现在,来自 await setMealplanorder(newOrder) 的 XHR 请求卡住了。控制台是空的,没有错误

enter image description here

知道它是什么吗?或者如何调试?

附加说明:

  • 有趣的是,当我将手机连接到本地主机上的应用程序时,它运行良好。
  • 当我尝试从一个干净的新应用发出相同的请求时,它起作用了。因此,该问题可能是与应用中的其他内容共同导致的。

解决方法

已解决:Firebase 版本问题!问题出在 firebase-messaging-sw.js Service Worker 中,我们将其用于 Firebase 云消息传递(推送通知)。 Service Worker 的版本已过时。

// Give the service worker access to Firebase Messaging.
// Note that you can only use Firebase Messaging here,other Firebase libraries
// are not available in the service worker.

importScripts('https://www.gstatic.com/firebasejs/7.17.2/firebase-app.js')
importScripts('https://www.gstatic.com/firebasejs/7.17.2/firebase-messaging.js')

...

更新 npm i firebase@latest 并将 importScripts 中的版本更改为 8.4.3 后,它可以正常工作。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。