Получение токена FCM с помощью специальной оболочки для Messaging iOSIOS

Программируем под IOS
Anonymous
Получение токена FCM с помощью специальной оболочки для Messaging iOS

Сообщение Anonymous »

Вообще-то в нашем проекте мы добавили класс-оболочку для Firebase Messaging
Он почти содержит только

Код: Выделить всё

final class MessagingWrapper {
private let messaging: Messaging

init() {
messaging = Messaging.messaging()
}

func configure() {
messaging.delegate = self
}
}

extension MessagingWrapper: MessagingDelegate {
func messaging(_ messaging: Messaging, didReceiveRegistrationToken fcmToken: String?) {
// handle received fcmToken...
}
}
Меня беспокоит то, что класс, настроенный таким образом (я несколько раз проверял, что мы настраиваем зависимости Firebase в правильном порядке, устанавливаем токен APNS и т. д.), на самом деле не работает. вообще вызвать функцию делегата.
но если мы изменим функцию configure на:

Код: Выделить всё

    func configure() {
Messaging.messaging().delegate = self
}

все начинает работать нормально...
Кто-нибудь знает, что происходит в библиотеках Firebase, что эта оболочка нарушает все решение? Действительно ли нам нужно всегда вызывать Messaging.messaging(), если мы хотим работать с обменом сообщениями?
Я пытался изучить документацию, но ничего толком не нашел (но я с таким же успехом можно быть полностью слепым). Я знаю, что могу это исправить, всегда используя Messaging.messaging(), но я просто хочу понять, ПОЧЕМУ я не могу хранить ссылку в нашей оболочке.

Подробнее здесь: https://stackoverflow.com/questions/784 ... saging-ios

Вернуться в «IOS»