Уведомления об выставках не могут вызывать `getExpoPushTokenAsync()`

В настоящее время пытаюсь настроить уведомления в моем управляемом выставочном проекте.

  • Экспо версия 47.0.0
  • Версия уведомлений об выставках 0.17.0
  • Устройство: Samsung Galaxy S10
  • Android-версия 12

В настоящее время я просто пытаюсь заставить работать базовую настройку и получить токен push-уведомлений моих устройств. Это нужно сделать с помощью Notifications.getExpoPushTokenAsync(), как описано здесь.

Проблема

Моя ошибка странная, когда я звоню getExpoPushTokenAsync, я действительно получаю токен expo push, однако вскоре после сбоя моего приложения со следующими сообщениями

ERROR  TypeError: undefined is not an object (evaluating '_$$_REQUIRE(_dependencyMap[1], "../../../src/util").types.isPromise')
 WARN  [expo-notifications] Error encountered while updating server registration with latest device push token. [TypeError: undefined is not an object (evaluating '_$$_REQUIRE(_dependencyMap[5], "@ide/backoff").computeNextBackoffInterval')]

я пытался

  • переустанавливаю node_modules и expo-notifications, но все равно получаю то же самое.
  • Я определенно вижу, что пакет @ide/backoff установлен в моем node_modules.
  • Я также следовал этим инструкциям, чтобы настроить firebase в приложении, хотя я понимаю, что он должен работать из коробки в приложении expo go во время разработки.

Еще одна интересная вещь заключается в том, что я могу назвать Notifications.getDevicePushTokenAsync() нормально без ошибок. Но все равно получаю ту же ошибку, если я передам это методу getExpoPushTokenAsync после. На поверхностном уровне кажется, что каким-то образом запрос к выставочным службам на получение push-токена выставки одновременно проходит и терпит неудачу 🤷‍♂️

const devicePushTokenResponse = await Notifications.getDevicePushTokenAsync();
const expoPushTokenResponse = await Notifications.getExpoPushTokenAsync({
  devicePushToken: devicePushTokenResponse,
}); // <--- Returns token & errors a few seconds later

Не удалось найти другие сообщения с этой ошибкой и expo-notifications, поэтому было бы интересно узнать, сталкивался ли кто-нибудь еще с подобной проблемой в последнее время / исправлял ли ее

Ваше здоровье

1
0
53
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Хорошо, я понял, на это как-то намекала эта строчка ERROR TypeError: undefined is not an object (evaluating '_$$_REQUIRE(_dependencyMap[1], "../../../src/util").types.isPromise') И, в частности, тот факт, что зависимость node_modules ссылается на 3 уровня вверх в файловой системе.

Решение

Оказывается, по какой-то причине мой преобразователь модулей (определенный в babel.config.js) разрешал папку util моего проекта, а не папку с пакетами утилит. Я думаю, что это было усугублено тем, что моя конфигурация метро использовала функциональность inlineRequires для повышения производительности (см. подробнее)

Я уверен, что есть какая-то реальная конфигурация, которую можно было бы обновить, чтобы исключить node_modules из использования встроенных требований (я пытался использовать черный список безрезультатно), но временно я смог заставить его работать нормально, изменив путь моего util папка должна быть @my-project/util, чтобы избежать конфликтов в будущем.

Надеюсь, это поможет всем, кто столкнется с той же проблемой в будущем :)

Другие вопросы по теме

Как мне обновить свое состояние из побочного эффекта вызова API в нативном React?
Реагируйте на проблему с собственным асинхронным хранилищем. Он загружает элемент только перед
React Native Paper Theming не применяется
KeyboardAvoidingView и ScrollView (автоматически AdjustKeyboardInsets) добавляют большое пустое пространство между основным и нижним контейнерами
Как я могу исправить эту ошибку? ОШИБКА TypeError: null не является объектом (оценка 'userdata.user')
Как удалить активный фон значка в навигаторе нижней вкладки React Navigation Material
Реагировать на собственный цикл удаления времени в зависимости от длины между концом последнего времени и началом следующего времени
Удалить заголовок в верхней части навигации по нижним вкладкам React Navigation Native
Изображения не будут отображаться в PointAnnotations — React Native MapboxGL
Ожидание асинхронных параметров при использовании xstate `useInterpret`