Повторная попытка жетона Firebase в Swift - PullRequest
1 голос
/ 23 мая 2019

Я прихожу с вопросом о Firebase в Swift. Мое приложение настраивает Firebase и, таким образом, получает маркер firebase при запуске. Я храню токен без проблем и продолжаю.

Но ... Что произойдет, если пользователь запустит приложение, когда его устройство не в сети? Приложение пытается получить токен, но не удается, потому что нет подключения к Интернету. Он пытается до пяти раз, а затем перестает пытаться. Приложение также заблокировано на экране входа в систему, потому что для входа в систему вам необходим Интернет.

Представьте, что после пяти попыток устройство наконец-то получает соединение, и пользователь входит в систему и входит в приложение. Но у меня нет токена Firebase, и я не могу отправлять уведомления пользователю, пока он не перезапустит приложение!

Могу ли я как-нибудь повторить регистрацию firebase, если пользователь входит в систему без токена?

Заранее большое спасибо.

Ответы [ 2 ]

2 голосов
/ 23 мая 2019

Вам не нужно решать проблему, которая на самом деле не является проблемой. Токен не будет всегда обновляться. Вот описание Firebase's didReceiveRegistrationToken.

Этот метод будет вызван, когда токен будет доступен или был обновилась. Обычно он вызывается один раз за запуск приложения, но может быть вызывается чаще, если токен признан недействительным или обновлен.

Кроме того, как сказал Firebase, как только вы вызовете этот метод, воспользуйтесь им и сохраните токен на своем сервере! Когда пользователь запускает ваше приложение без подключения к интернету, не беспокойтесь об этом. Пользователь, вероятно, сохранил токен на вашем сервере. И если пользователь запускает ваше приложение в первый раз, и без подключения к интернету, не беспокойтесь об этом тоже. Он получит новый в следующем запуске.

Надеюсь, это поможет.

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

После дальнейшего поиска в Google я обнаружил, что вызов InstanceID.instanceID().token() вызывает новую попытку, чтобы получить токен FCM, если ваш текущий токен пуст, и возвращает текущий токен, если он у вас есть. Я добавил этот вызов, когда пользователь успешно вошел в систему, чтобы приложение могло , по крайней мере, попробовать , чтобы снова получить токен FCM.

...