This class is the entry point for all server-side Firebase Cloud Messaging actions.
You can get an instance of FirebaseMessaging via getInstance(FirebaseApp)
, and
then use it to send messages or manage FCM topic subscriptions.
Public Method Summary
static FirebaseMessaging |
getInstance()
Gets the
FirebaseMessaging instance for the default FirebaseApp . |
synchronized static FirebaseMessaging | |
String | |
String | |
BatchResponse | |
BatchResponse | |
ApiFuture<BatchResponse> |
sendAllAsync(List<Message> messages)
Similar to
sendAll(List) but performs the operation asynchronously. |
ApiFuture<BatchResponse> |
sendAllAsync(List<Message> messages, boolean dryRun)
Similar to
sendAll(List, boolean) but performs the operation asynchronously. |
ApiFuture<String> |
sendAsync(Message message, boolean dryRun)
Similar to
send(Message, boolean) but performs the operation asynchronously. |
ApiFuture<String> | |
BatchResponse |
sendMulticast(MulticastMessage message)
Sends the given multicast message to all the FCM registration tokens specified in it.
|
BatchResponse |
sendMulticast(MulticastMessage message, boolean dryRun)
Sends the given multicast message to all the FCM registration tokens specified in it.
|
ApiFuture<BatchResponse> |
sendMulticastAsync(MulticastMessage message)
Similar to
sendMulticast(MulticastMessage) but performs the operation
asynchronously. |
ApiFuture<BatchResponse> |
sendMulticastAsync(MulticastMessage message, boolean dryRun)
Similar to
sendMulticast(MulticastMessage, boolean) but performs the operation
asynchronously. |
TopicManagementResponse |
subscribeToTopic(List<String> registrationTokens, String topic)
Subscribes a list of registration tokens to a topic.
|
ApiFuture<TopicManagementResponse> |
subscribeToTopicAsync(List<String> registrationTokens, String topic)
Similar to
subscribeToTopic(List, String) but performs the operation asynchronously. |
TopicManagementResponse |
unsubscribeFromTopic(List<String> registrationTokens, String topic)
Unsubscribes a list of registration tokens from a topic.
|
ApiFuture<TopicManagementResponse> |
unsubscribeFromTopicAsync(List<String> registrationTokens, String topic)
Similar to
unsubscribeFromTopic(List, String) but performs the operation
asynchronously. |
Inherited Method Summary
Public Methods
public static FirebaseMessaging getInstance ()
Gets the FirebaseMessaging
instance for the default FirebaseApp
.
Returns
- The
FirebaseMessaging
instance for the defaultFirebaseApp
.
public static synchronized FirebaseMessaging getInstance (FirebaseApp app)
Gets the FirebaseMessaging
instance for the specified FirebaseApp
.
Returns
- The
FirebaseMessaging
instance for the specifiedFirebaseApp
.
public String send (Message message)
Sends the given Message
via Firebase Cloud Messaging.
Parameters
message | A non-null Message to be sent. |
---|
Returns
- A message ID string.
Throws
FirebaseMessagingException | If an error occurs while handing the message off to FCM for delivery. |
---|
public String send (Message message, boolean dryRun)
Sends the given Message
via Firebase Cloud Messaging.
If the dryRun
option is set to true, the message will not be actually sent. Instead
FCM performs all the necessary validations and emulates the send operation. The dryRun
option is useful for determining whether an FCM registration has been deleted. However, it
cannot be used to validate APNs tokens.
Parameters
message | A non-null Message to be sent. |
---|---|
dryRun | a boolean indicating whether to perform a dry run (validation only) of the send. |
Returns
- A message ID string.
Throws
FirebaseMessagingException | If an error occurs while handing the message off to FCM for delivery. |
---|
public BatchResponse sendAll (List<Message> messages)
Sends all the messages in the given list via Firebase Cloud Messaging. Employs batching to
send the entire list as a single RPC call. Compared to the send(Message)
method, this
is a significantly more efficient way to send multiple messages.
The responses list obtained by calling getResponses()
on the return
value corresponds to the order of input messages.
Parameters
messages | A non-null, non-empty list containing up to 500 messages. |
---|
Returns
- A
BatchResponse
indicating the result of the operation.
Throws
FirebaseMessagingException | If an error occurs while handing the messages off to FCM for
delivery. An exception here indicates a total failure -- i.e. none of the messages in the
list could be sent. Partial failures are indicated by a BatchResponse return value.
|
---|
public BatchResponse sendAll (List<Message> messages, boolean dryRun)
Sends all the messages in the given list via Firebase Cloud Messaging. Employs batching to
send the entire list as a single RPC call. Compared to the send(Message)
method, this
is a significantly more efficient way to send multiple messages.
If the dryRun
option is set to true, the message will not be actually sent. Instead
FCM performs all the necessary validations, and emulates the send operation. The dryRun
option is useful for determining whether an FCM registration has been deleted. But it cannot be
used to validate APNs tokens.
The responses list obtained by calling getResponses()
on the return
value corresponds to the order of input messages.
Parameters
messages | A non-null, non-empty list containing up to 500 messages. |
---|---|
dryRun | A boolean indicating whether to perform a dry run (validation only) of the send. |
Returns
- A
BatchResponse
indicating the result of the operation.
Throws
FirebaseMessagingException | If an error occurs while handing the messages off to FCM for
delivery. An exception here indicates a total failure -- i.e. none of the messages in the
list could be sent. Partial failures are indicated by a BatchResponse return value.
|
---|
public ApiFuture<BatchResponse> sendAllAsync (List<Message> messages)
Similar to sendAll(List)
but performs the operation asynchronously.
Parameters
messages | A non-null, non-empty list containing up to 500 messages. |
---|
public ApiFuture<BatchResponse> sendAllAsync (List<Message> messages, boolean dryRun)
Similar to sendAll(List, boolean)
but performs the operation asynchronously.
Parameters
messages | A non-null, non-empty list containing up to 500 messages. |
---|---|
dryRun | A boolean indicating whether to perform a dry run (validation only) of the send. |
public ApiFuture<String> sendAsync (Message message, boolean dryRun)
Similar to send(Message, boolean)
but performs the operation asynchronously.
Parameters
message | A non-null Message to be sent. |
---|---|
dryRun | a boolean indicating whether to perform a dry run (validation only) of the send. |
Returns
- An
ApiFuture
that will complete with a message ID string when the message has been sent, or when the emulation has finished.
public ApiFuture<String> sendAsync (Message message)
Similar to send(Message)
but performs the operation asynchronously.
Parameters
message | A non-null Message to be sent. |
---|
Returns
- An
ApiFuture
that will complete with a message ID string when the message has been sent.
public BatchResponse sendMulticast (MulticastMessage message)
Sends the given multicast message to all the FCM registration tokens specified in it.
This method uses the sendAll(List)
API under the hood to send the given
message to all the target recipients. The responses list obtained by calling
getResponses()
on the return value corresponds to the order of tokens
in the MulticastMessage
.
Parameters
message | A non-null MulticastMessage |
---|
Returns
- A
BatchResponse
indicating the result of the operation.
Throws
FirebaseMessagingException | If an error occurs while handing the messages off to FCM for
delivery. An exception here indicates a total failure -- i.e. the messages could not be
delivered to any recipient. Partial failures are indicated by a BatchResponse
return value.
|
---|
public BatchResponse sendMulticast (MulticastMessage message, boolean dryRun)
Sends the given multicast message to all the FCM registration tokens specified in it.
If the dryRun
option is set to true, the message will not be actually sent. Instead
FCM performs all the necessary validations, and emulates the send operation. The dryRun
option is useful for determining whether an FCM registration has been deleted. But it cannot be
used to validate APNs tokens.
This method uses the sendAll(List)
API under the hood to send the given
message to all the target recipients. The responses list obtained by calling
getResponses()
on the return value corresponds to the order of tokens
in the MulticastMessage
.
Parameters
message | A non-null MulticastMessage . |
---|---|
dryRun | A boolean indicating whether to perform a dry run (validation only) of the send. |
Returns
- A
BatchResponse
indicating the result of the operation.
Throws
FirebaseMessagingException | If an error occurs while handing the messages off to FCM for
delivery. An exception here indicates a total failure -- i.e. the messages could not be
delivered to any recipient. Partial failures are indicated by a BatchResponse
return value.
|
---|
public ApiFuture<BatchResponse> sendMulticastAsync (MulticastMessage message)
Similar to sendMulticast(MulticastMessage)
but performs the operation
asynchronously.
Parameters
message | A non-null MulticastMessage . |
---|
Returns
- An
ApiFuture
that will complete with aBatchResponse
when the messages have been sent.
public ApiFuture<BatchResponse> sendMulticastAsync (MulticastMessage message, boolean dryRun)
Similar to sendMulticast(MulticastMessage, boolean)
but performs the operation
asynchronously.
Parameters
message | A non-null MulticastMessage . |
---|---|
dryRun | A boolean indicating whether to perform a dry run (validation only) of the send. |
Returns
- An
ApiFuture
that will complete with aBatchResponse
when the messages have been sent.
public TopicManagementResponse subscribeToTopic (List<String> registrationTokens, String topic)
Subscribes a list of registration tokens to a topic.
Parameters
registrationTokens | A non-null, non-empty list of device registration tokens, with at most 1000 entries. |
---|---|
topic | Name of the topic to subscribe to. May contain the /topics/ prefix. |
Returns
Throws
FirebaseMessagingException |
---|
public ApiFuture<TopicManagementResponse> subscribeToTopicAsync (List<String> registrationTokens, String topic)
Similar to subscribeToTopic(List, String)
but performs the operation asynchronously.
Parameters
registrationTokens | A non-null, non-empty list of device registration tokens, with at most 1000 entries. |
---|---|
topic | Name of the topic to subscribe to. May contain the /topics/ prefix. |
Returns
- An
ApiFuture
that will complete with aTopicManagementResponse
.
public TopicManagementResponse unsubscribeFromTopic (List<String> registrationTokens, String topic)
Unsubscribes a list of registration tokens from a topic.
Parameters
registrationTokens | A non-null, non-empty list of device registration tokens, with at most 1000 entries. |
---|---|
topic | Name of the topic to unsubscribe from. May contain the /topics/ prefix. |
Returns
Throws
FirebaseMessagingException |
---|
public ApiFuture<TopicManagementResponse> unsubscribeFromTopicAsync (List<String> registrationTokens, String topic)
Similar to unsubscribeFromTopic(List, String)
but performs the operation
asynchronously.
Parameters
registrationTokens | A non-null, non-empty list of device registration tokens, with at most 1000 entries. |
---|---|
topic | Name of the topic to unsubscribe from. May contain the /topics/ prefix. |
Returns
- An
ApiFuture
that will complete with aTopicManagementResponse
.