Estoy trabajando con swift y firebase. Anteriormente estaba usando el siguiente método para obtener firebase token que, a continuación, que se utiliza para almacenar en la base de datos para el envío de notificaciones.

InstanceID.instanceID().token()

Ahora este método se muestra como obsoleto desde que he actualizado mi firebase.

'token()' is deprecated: Use instanceIDWithHandler: instead.

No sé cómo utilizar instanceIDWithHandler he intentado pero no sé cómo conseguir el token.

func instanceID(handler: @escaping InstanceIDResultHandler){

    }

Ayuda por favor.
Gracias de antemano.

  • Estás preguntando acerca de este?
InformationsquelleAutor Deepak | 2018-06-20

1 Comentario

  1. 35

    ir a Buscar el registro actual token

    Registro de fichas se entregan a través del método de messaging:didReceiveRegistrationToken:. Este método es llamado generalmente una vez por aplicación de comenzar con una FCM de token. Cuando se llama a este método, es el momento ideal para:

    • Si el registro token es nuevo, lo envía al servidor de aplicaciones.
    • Suscribir el registro de token de temas. Esto es necesario sólo para nuevas suscripciones o para situaciones donde el usuario ha de volver a instalar la aplicación.

    Puede recuperar el token directamente a través de instanceIDWithHandler:. Esta devolución de llamada proporciona un InstanceIDResult, que contiene el token. No null error es si el identificador de instancia de recuperación fallado de alguna manera.

    objetivo C

    en su getTokenMethod

    [[FIRInstanceID instanceID] instanceIDWithHandler:^(FIRInstanceIDResult * _Nullable result,
                                                    NSError * _Nullable error) {
    if (error != nil) {
    NSLog(@"Error fetching remote instance ID: %@", error);
    } else {
    NSLog(@"Remote instance ID token: %@", result.token);
    }
    }];

    Swift

    InstanceID.instanceID().instanceID { (result, error) in
    if let error = error {
    print("Error fetching remote instange ID: \(error)")
    } else if let result = result {
    print("Remote instance ID token: \(result.token)")
     }
    }
    • esta solución funciona perfecto gracias, Señor. Yo quiero saber de donde sacaste esta respuesta o donde puedo aprender cosas. Cuando leí firebase documentación esto es lo que he encontrado enlace, que no fue útil en todo o era incapaz de entenderlo.
    • el docs con esta información está aquí: firebase.google.com/docs/cloud-messaging/ios/first-message
    • Algunos de nuestros usuarios están teniendo problemas con esta nueva solución, el lambda nunca devuelve el resultado.
    • igual que @PedroPauloAmorim 🙁
    • mismo problema, el lambda nunca devolver el resultado!
    • el resultado será de tipo InstanceIDResult. A las Cuerdas de uso de dejar newToken = resultado.token y dejar de instanceId = resultado.instanceID
    • lambda se bloquea para mí cuando puedo configurar la base avanzada utilizando SEGFirebaseIntegrationFactory en lugar de FirebaseApp.configure()

Dejar respuesta

Please enter your comment!
Please enter your name here