Не могу получить экспо push-токен на Android - PullRequest
0 голосов
/ 08 ноября 2018

Я создаю собственное приложение React, основанное на Expo , и хочу также воспользоваться возможностями push-уведомлений Expo в сочетании с База данных Firebase в реальном времени . Я в основном следую описанным шагам здесь . Все шло довольно хорошо, прежде чем дойти до места, где должен быть извлечен токен push-уведомления.

registerForPushNotificationsAsync = async (userInfo) => {
    // ... Stuff

    // Get the token that uniquely identifies this device
    let token = await Notifications.getExpoPushTokenAsync();
    console.log("Expo token: " + token);
    var updates = {}
    updates['/expoToken'] = token
    firebase.database().ref('Users').child(userInfo.user.uid).update(updates)
  }

Проблема возникает в этой строке:

let token = await Notifications.getExpoPushTokenAsync();

Он никогда не возвращает значение, и я не могу получить push-токен. Это специфично для Android (Android 7.0) и не встречается на iPhone (iOS 11.0.2). На iPhone возвращается токен, и я успешно сохраняю его в базе данных.

Что я делаю, так это запускаю выставку, используя их CLI, и сканирую сгенерированный QR-код (используя их клиентские приложения для IOS / Android). Затем снова в загруженном браузере CLI я наблюдаю, что происходит во время выполнения с приложением соответственно на iPhone и на телефоне Android. Версии пакетов следующие:

expo@31.0.2

firebase@5.5.7

react-native@0.57.1

Я хочу запустить это на Android, но все еще безуспешно. Я видел в i-net, что некоторые люди просто используют FCM для push-уведомлений , но все еще не уверены. Я так понимаю:

Обратите внимание, что FCM нельзя использовать для отправки сообщений на Android Expo Клиент. Кроме того, FCM в настоящее время недоступен для приложений Expo iOS.

означает, что при использовании FCM пуш-уведомления никогда не будут работать как для IOS, так и для Android.

РЕДАКТИРОВАТЬ : После обновления клиентского приложения для Android теперь появляется сообщение:

[Ошибка: не удалось получить токен GCM для устройства]

Ответы [ 3 ]

0 голосов
/ 29 января 2019

[Ошибка: не удалось получить токен GCM для устройства]

Также сработает, если вы не вошли в expo-cli.

Ваш логин отображается в левом верхнем углу Expo Dev Tools.

Если вы не видите LOGGED IN AS "Имя пользователя", запустите expo login в командной строке и укажите свое имя пользователя и пароль.

0 голосов
/ 14 мая 2019

В дополнение к настройке FCM вы должны войти в свою учетную запись expo (или создать ее), в противном случае все равно будет появляться та же ошибка.

0 голосов
/ 03 января 2019

У меня была эта проблема, нужно настроить Firebase.Он был совершенно скрыт в документах (https://docs.expo.io/versions/latest/guides/push-notifications):

. Для Android вам также необходимо загрузить ключ сервера Firebase Cloud Messaging в Expo, чтобы Expo могла отправлять уведомления в ваше приложение. Этот шаг необходим, если толькоВы не создаете свой собственный APK и используете только приложение клиента Expo из Google Play. Следуйте руководству по использованию FCM для push-уведомлений, чтобы узнать, как создать проект Firebase, получить ключ сервера FCM и загрузить ключ в Expo.

...