Search code examples
iosswiftfirebasefirebase-cloud-messagingdevice-instance-id

Change/update Firebase notification token or instance id forcefully via code?


What should I do that for changing or requesting the token in firebase? the unique token generated by firebase on the basis of device information.


Solution

  • Now i got my answer after facing many troubles for generating new or change token of firebase for push notification.

    1) Delete old Firebase token

    let instance = FIRInstanceID.instanceID()
    _ = FIRInstanceID.delete(instance)
    FIRInstanceID.instanceID().delete { (err:Error?) in
        if err != nil{
            print(err.debugDescription);
        } else {
            print("Token Deleted");
        }
    }
    

    2) Request new Firebase token

    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.")
        }
    }
    

    UPDATE FOR SWIFT 4 & Firebase 4.8.2 (Follow simple two steps)👇👇

    1) Delete old Token

    let instance = InstanceID.instanceID()
    instance.deleteID { (error) in
        print(error.debugDescription)
    }
    

    2) Request for new token

    if let token = InstanceID.instanceID().token() {
        print("Token : \(token)");
    } else {
        print(“Error: unable to fetch token");
    }
    
    Messaging.messaging().shouldEstablishDirectChannel = true
    

    You can get updated token in MessagingDelegate method didReceiveRegistrationToken and in Refresh Token.

    func messaging(_ messaging: Messaging, didReceiveRegistrationToken fcmToken: String) {
        print("Firebase Token :  \(fcmToken)")
    }