FIRInstanceID

@interface FIRInstanceID : NSObject

Instance ID provides a unique identifier for each app instance and a mechanism to authenticate and authorize actions (for example, sending an FCM message).

Instance ID is long lived but, may be reset if the device is not used for a long time or the Instance ID service detects a problem. If Instance ID is reset, the app will be notified via kFIRInstanceIDTokenRefreshNotification.

If the Instance ID has become invalid, the app can request a new one and send it to the app server. To prove ownership of Instance ID and to allow servers to access data or services associated with the app, call [FIRInstanceID tokenWithAuthorizedEntity:scope:options:handler].

  • FIRInstanceID.

    Declaration

    Swift

    class func instanceID() -> Self

    Objective-C

    + (nonnull instancetype)instanceID;

    Return Value

    A shared instance of FIRInstanceID.

  • Unavailable. Use +instanceID instead.

    Declaration

    Objective-C

    - (nonnull instancetype)init;
  • Set APNS token for the application. This APNS token will be used to register with Firebase Messaging using token or tokenWithAuthorizedEntity:scope:options:handler. If the token type is set to FIRInstanceIDAPNSTokenTypeUnknown InstanceID will read the provisioning profile to find out the token type.

    Declaration

    Swift

    func setAPNSToken(_ token: Data, type: FIRInstanceIDAPNSTokenType)

    Objective-C

    - (void)setAPNSToken:(nonnull NSData *)token
                    type:(FIRInstanceIDAPNSTokenType)type;

    Parameters

    token

    The APNS token for the application.

    type

    The APNS token type for the above token.

  • Returns a Firebase Messaging scoped token for the firebase app.

    Declaration

    Swift

    func token() -> String?

    Objective-C

    - (nullable NSString *)token;

    Return Value

    Null Returns null if the device has not yet been registerd with Firebase Message else returns a valid token.

  • Returns a token that authorizes an Entity (example: cloud service) to perform an action on behalf of the application identified by Instance ID.

    This is similar to an OAuth2 token except, it applies to the application instance instead of a user.

    This is an asynchronous call. If the token fetching fails for some reason we invoke the completion callback with nil token and the appropriate error.

    Note, you can only have one token or deleteToken call for a given authorizedEntity and scope at any point of time. Making another such call with the same authorizedEntity and scope before the last one finishes will result in an error with code OperationInProgress.

    See

    FIRInstanceID deleteTokenWithAuthorizedEntity:scope:handler:

    Declaration

    Swift

    func token(withAuthorizedEntity authorizedEntity: String, scope: String, options: [AnyHashable : Any]? = nil, handler: @escaping FIRInstanceIDTokenHandler)

    Objective-C

    - (void)tokenWithAuthorizedEntity:(nonnull NSString *)authorizedEntity
                                scope:(nonnull NSString *)scope
                              options:(nullable NSDictionary *)options
                              handler:(nonnull FIRInstanceIDTokenHandler)handler;

    Parameters

    authorizedEntity

    Entity authorized by the token.

    scope

    Action authorized for authorizedEntity.

    options

    The extra options to be sent with your token request. The value for the apns_token should be the NSData object passed to UIApplication’s didRegisterForRemoteNotificationsWithDeviceToken method. All other keys and values in the options dict need to be instances of NSString or else they will be discarded. Bundle keys starting with ‘GCM.’ and 'GOOGLE.’ are reserved.

    handler

    The callback handler which is invoked when the token is successfully fetched. In case of success a valid token and nil error are returned. In case of any error the token is nil and a valid error is returned. The valid error codes have been documented above.

  • Revokes access to a scope (action) for an entity previously authorized by [FIRInstanceID tokenWithAuthorizedEntity:scope:options:handler].

    This is an asynchronous call. Call this on the main thread since InstanceID lib is not thread safe. In case token deletion fails for some reason we invoke the handler callback passed in with the appropriate error code.

    Note, you can only have one token or deleteToken call for a given authorizedEntity and scope at a point of time. Making another such call with the same authorizedEntity and scope before the last one finishes will result in an error with code OperationInProgress.

    Declaration

    Swift

    func deleteToken(withAuthorizedEntity authorizedEntity: String, scope: String, handler: @escaping FIRInstanceIDDeleteTokenHandler)

    Objective-C

    - (void)deleteTokenWithAuthorizedEntity:(nonnull NSString *)authorizedEntity
                                      scope:(nonnull NSString *)scope
                                    handler:
                                        (nonnull FIRInstanceIDDeleteTokenHandler)
                                            handler;

    Parameters

    authorizedEntity

    Entity that must no longer have access.

    scope

    Action that entity is no longer authorized to perform.

    handler

    The handler that is invoked once the unsubscribe call ends. In case of error an appropriate error object is returned else error is nil.

  • Asynchronously fetch a stable identifier that uniquely identifies the app instance. If the identifier has been revoked or has expired, this method will return a new identifier.

    Declaration

    Swift

    func getWithHandler(_ handler: @escaping FIRInstanceIDHandler)

    Objective-C

    - (void)getIDWithHandler:(nonnull FIRInstanceIDHandler)handler;

    Parameters

    handler

    The handler to invoke once the identifier has been fetched. In case of error an appropriate error object is returned else a valid identifier is returned and a valid identifier for the application instance.

  • Resets Instance ID and revokes all tokens.

    Declaration

    Swift

    func delete(handler: @escaping FIRInstanceIDDeleteHandler)

    Objective-C

    - (void)deleteIDWithHandler:(nonnull FIRInstanceIDDeleteHandler)handler;