0

我们的应用使用 Firestore 和 Firebase 函数。为了保存订单,我们调用https 可调用 Firebase 函数,如下所示:

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。现在,来自 XHR 的请求await setMealplanOrder(newOrder)只是卡住了。控制台是空的,没有错误。

在此处输入图像描述

知道会是什么吗?或者如何调试这个?

补充笔记:

  • 有趣的是,当我将手机连接到本地主机上的应用程序时,它运行良好。
  • 当我尝试从新的干净应用程序触发相同的请求时,它可以工作。因此,该问题可能是与应用程序中的其他内容相结合引起的。
4

1 回答 1

0

已解决:Firebase 版本问题!问题出在firebase-messaging-sw.jsService 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,它可以正常工作。

于 2021-04-30T14:00:26.110 回答