public class

FirebaseInstanceId

extends Object
java.lang.Object
   ↳ com.google.firebase.iid.FirebaseInstanceId

Class Overview

Firebase Instance ID provides a unique identifier for each app instance and a mechanism to authenticate and authorize actions (example: sending FCM messages).

Instance ID is stable except when:

  • App deletes Instance ID
  • App is restored on a new device
  • User uninstalls/reinstall the app
  • User clears app data
In the above cases a new Instance ID is generated and the application needs to recreate the authorization tokens previously generated implementing onTokenRefresh().

Once an Instance ID is generated, the library periodically sends information about the application and the device where it's running to the Firebase backend. To stop this, see deleteInstanceId().

To prove ownership of Instance ID and to allow servers to access data or services associated with the app, call getToken(String, String).

Summary

Public Methods
void deleteInstanceId()
Delete the Instance ID and the data associated with it.
void deleteToken(String authorizedEntity, String scope)
Revokes access to a scope (action) for an entity previously authorized by getToken().
long getCreationTime()
Returns time when instance ID was created.
String getId()
Returns a stable identifier that uniquely identifies the app instance.
static FirebaseInstanceId getInstance()
Returns an instance of this class.
static FirebaseInstanceId getInstance(FirebaseApp app)
Returns an instance for the given FirebaseApp.
String getToken(String authorizedEntity, String scope)
Returns a token that authorizes an Entity to perform an action on behalf of the application identified by Instance ID.
String getToken()
Returns the master token for the default Firebase project.
[Expand]
Inherited Methods
From class java.lang.Object

Public Methods

public void deleteInstanceId ()

Delete the Instance ID and the data associated with it.

This stops the periodic sending of data to the Firebase backend started when the Instance ID was generated, unless another library that requires InstanceId (like FCM, RemoteConfig or Analytics) is used or it's configured to be executed automatically.

A new Instance ID is generated asynchronously if Firebase Cloud Messaging auto-init is enabled.

This is a blocking function so do not call it on the main thread.

Throws
IOException

public void deleteToken (String authorizedEntity, String scope)

Revokes access to a scope (action) for an entity previously authorized by getToken().

This is a blocking function so do not call it on the main thread.

Parameters
authorizedEntity String: Entity that must no longer have access.
scope String: Action that entity is no longer authorized to perform.
Throws
IOException if the request fails.

public long getCreationTime ()

Returns time when instance ID was created.

Returns
long Time when instance ID was created (milliseconds since Epoch).

public String getId ()

Returns a stable identifier that uniquely identifies the app instance.

Once an Instance ID is generated, the library periodically sends information about the application and the device where it's running to the Firebase backend. To stop this, see deleteInstanceId().

Returns
String The identifier for the application instance.

public static FirebaseInstanceId getInstance ()

Returns an instance of this class.

Returns
FirebaseInstanceId FirebaseInstanceId instance.

public static FirebaseInstanceId getInstance (FirebaseApp app)

Returns an instance for the given FirebaseApp.

Parameters
app FirebaseApp: FirebaseApp instance.
Returns
FirebaseInstanceId FirebaseInstanceId instance.

public String getToken (String authorizedEntity, String scope)

Returns a token that authorizes an Entity to perform an action on behalf of the application identified by Instance ID.

This generates an Instance ID if it does not exist yet, which starts periodically sending information to the Firebase backend (see getId()).

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

For example, to get a token that can be used to send messages to an application via FirebaseMessaging, set to the sender ID, and set to "FCM".

This is a blocking function so do not call it on the main thread.

Returns
String a token that can identify and authorize the instance of the application on the device.
Throws
IOException if the request fails.

public String getToken ()

Returns the master token for the default Firebase project.

This generates an Instance ID if it does not exist yet, which starts periodically sending information to the Firebase backend (see getId()).

Returns
String the master token or null if the token is not yet available