问题描述
我们的应用使用 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 请求卡住了。控制台是空的,没有错误。
知道它是什么吗?或者如何调试?
附加说明:
解决方法
已解决: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
后,它可以正常工作。