"didReceiveRegistrationToken" не дает мне fcmToken? - PullRequest
0 голосов
/ 10 февраля 2019

Я создаю приложение с помощью firebase и пытаюсь сохранить токен FCM для push-уведомлений (который отправляется функциями firebase).

Способ, которым я пытаюсь это сделать, - это сохранение deviceToken в UserDefault, чтобы использовать его позже.

Мне нужно сохранить fcmToken, когда пользователь регистрируется (чтобы сохранить его в моей базе данных в профиле).

Когда пользователь выходит из системы, мне нужно удалить fcmToken в базе данных.

Из-за этого у меня есть func messaging(_ messaging: Messaging, didReceiveRegistrationToken fcmToken: String) в AppDelegate (может быть, это неправильно?), И я храню его так:

Код AppDelegate:

func messaging(_ messaging: Messaging, didReceiveRegistrationToken fcmToken: String) {

        UserDefaults.standard.setValue("fcmToken", forKey: fcmToken)

}

Когда я хочу вызвать его, например, в видеконтроллере регистрации, я объявляю маркер устройства следующим образом:

Регистрация кода ViewController регистрации:

let deviceToken = UserDefaults.standard.value(forKey:"fcmToken") as? String ?? "not found"

И затем я сохраняю его в своей базе данных следующим образом

["fcmToken": deviceToken]

Однако, это всегда возвращает «не найдено» в Firebase и не сохраняет фактический идентификатор устройства.Было бы здорово, если бы вы, ребята, могли бы помочь мне в этом.

1 Ответ

0 голосов
/ 11 февраля 2019

У вас есть "" назад при сохранении в UserDefaults.как у вас есть, вы сохраняете строку "fcmToken" под строкой fcmToken

 func messaging(_ messaging: Messaging, didReceiveRegistrationToken fcmToken: String) {

    print(fcmToken)
    UserDefaults.standard.set(fcmToken, forKey: "fcmToken")

 }
...