Hola usuario de nuestra web, hallamos la solución a lo que estabas buscando, desplázate y la obtendrás a continuación.
Solución:
Ahora obtuve mi respuesta después de enfrentar muchos problemas para generar tokens nuevos o modificados de firebase para notificaciones automáticas.
1) Eliminar el antiguo token de Firebase
let instance = FIRInstanceID.instanceID()
_ = FIRInstanceID.delete(instance)
FIRInstanceID.instanceID().delete (err:Error?) in
if err != nil
print(err.debugDescription);
else
print("Token Deleted");
2) Solicitar un nuevo token de Firebase
if let token = FIRInstanceID.instanceID().token()
print("Token (token) fetched");
else
print("Unable to fetch token");
FIRMessaging.messaging().connect (error) in
if (error != nil)
print("Error connecting to FCM. (error.debugDescription)")
else
print("Connected to FCM.")
ACTUALIZACIÓN PARA SWIFT 4 y Firebase 4.8.2 (Siga dos simples pasos)
1) Eliminar token antiguo
let instance = InstanceID.instanceID()
instance.deleteID (error) in
print(error.debugDescription)
2) Solicitud de nuevo token
if let token = InstanceID.instanceID().token()
print("Token : (token)");
else
print(“Error: unable to fetch token");
Messaging.messaging().shouldEstablishDirectChannel = true
Puede obtener un token actualizado en el método MessagingDelegate didReceiveRegistrationToken
y en Refresh Token.
func messaging(_ messaging: Messaging, didReceiveRegistrationToken fcmToken: String)
print("Firebase Token : (fcmToken)")
por ahora InstanceID.instanceID().token()
es obsoleto.
Deberías usar esto:
let instance = InstanceID.instanceID()
instance.deleteID (error) in
print(error.debugDescription)
instance.instanceID (result, error) in
if let error = error
print("Error fetching remote instange ID: (error)")
else
print("Remote instance ID token: (String(describing: result?.token))")
Messaging.messaging().shouldEstablishDirectChannel = true
Luego en AppDelegate:
extension AppDelegate: MessagingDelegate {
func messaging(_ messaging: Messaging, didReceiveRegistrationToken fcmToken: String)
//Here is your new FCM token
print("Registered with FCM with token:", fcmToken)
Respuesta actualizada para Swift 4, FireBase 4.8.2, FirebaseMessaging (2.0.8)
debugPrint("Existing Token :- (Messaging.messaging().fcmToken!)")
let instance = InstanceID.instanceID()
instance.deleteID (error) in
print(error.debugDescription)
if let token = InstanceID.instanceID().token()
print("Token (token) fetched");
else
print("Unable to fetch token");
Messaging.messaging().shouldEstablishDirectChannel = true
Recibimos este token actualizado en el método MessagingDelegate, así como en Refresh Token
func messaging(_ messaging: Messaging, didReceiveRegistrationToken fcmToken: String)
print("Firebase registration token: (fcmToken)")
Comentarios y valoraciones
Ten en cuenta dar visibilidad a esta división si te fue de ayuda.