Recurso: mensagem
Mensagem a ser enviada pelo serviço do Firebase Cloud Messaging.
Representação JSON |
---|
{ "name": string, "data": { string: string, ... }, "notification": { object ( |
Campos | |
---|---|
name |
Somente saída. O identificador da mensagem enviada, no formato |
data |
Somente entrada. Payload de chave/valor arbitrário, que precisa ser codificado em UTF-8. A chave não deve ser uma palavra reservada ("from", "message_type" ou qualquer palavra que comece com "google." ou "gcm.notification."). Ao enviar payloads que contêm apenas campos de dados para dispositivos iOS, apenas a prioridade normal ( Um objeto com uma lista de pares |
notification |
Somente entrada. Modelo de notificação básico para usar em todas as plataformas. |
android |
Somente entrada. Opções específicas do Android para mensagens enviadas pelo servidor de conexão do FCM. |
webpush |
Somente entrada. Opções do protocolo Webpush. |
apns |
Somente entrada. Opções específicas do Apple Push Notification Service. |
fcm_options |
Somente entrada. Modelo de opções de recursos do SDK do FCM para usar em todas as plataformas. |
Campo de união target . Obrigatório. Somente entrada. Destino para o qual a mensagem será enviada. target pode ser apenas de um dos tipos a seguir: |
|
token |
Token de registro para enviar uma mensagem. |
topic |
Nome do tópico para enviar uma mensagem, por exemplo, "clima". Observação: "/topics/" . |
condition |
Condição para a qual enviar uma mensagem, por exemplo, "'foo' em tópicos && "bar" nos tópicos". |
Notificação
Modelo de notificação básico para usar em todas as plataformas.
Representação JSON |
---|
{ "title": string, "body": string, "image": string } |
Campos | |
---|---|
title |
O título da notificação. |
body |
O texto do corpo da notificação. |
image |
Contém o URL de uma imagem que será transferida por download para o dispositivo e exibida em uma notificação. JPEG, PNG, BMP têm suporte total a várias plataformas. Os GIFs e vídeos animados só funcionam no iOS. O WebP e o HEIF têm níveis variados de suporte entre plataformas e versões de plataforma. O Android tem limite de tamanho de imagem de 1 MB. Uso de cota e implicações/custos para hospedar imagens no Firebase Storage: https://firebase.google.com/pricing |
AndroidConfig
Opções específicas do Android para mensagens enviadas pelo servidor de conexão do FCM.
Representação JSON |
---|
{ "collapse_key": string, "priority": enum ( |
Campos | |
---|---|
collapse_key |
Um identificador de um grupo de mensagens que podem ser recolhidas, para que apenas a última seja enviada quando for possível retomar a entrega. São permitidas no máximo 4 chaves de recolhimento diferentes a qualquer momento. |
priority |
Prioridade da mensagem. Pode assumir "normal" e "alta" e a distribuição dos valores dos dados. Para mais informações, consulte Definir a prioridade de uma mensagem. |
ttl |
Por quanto tempo (em segundos) a mensagem deve ser mantida no armazenamento do FCM se o dispositivo estiver off-line. A vida útil máxima permitida é de quatro semanas. Caso não seja definido, o valor padrão será de quatro semanas. Defina-o como 0 se quiser enviar a mensagem imediatamente. No formato JSON, o tipo Duration é codificado como uma string em vez de um objeto, em que a string termina com o sufixo "s". (indicando segundos) e for precedido pelo número de segundos, com os nanossegundos expressos como frações de segundos. Por exemplo, 3 segundos com 0 nanossegundos devem ser codificados no formato JSON como "3s", enquanto 3 segundos e 1 nanossegundos devem ser expressos no formato JSON como "3.000000001s". O TTL será arredondado para o segundo mais próximo. Duração em segundos com até nove dígitos fracionários, terminando em " |
restricted_package_name |
Nome do pacote do aplicativo ao qual o token de registro deve corresponder para receber a mensagem. |
data |
Payload de chave/valor arbitrário. Se estiver presente, ele vai substituir Um objeto com uma lista de pares |
notification |
Notificação para enviar a dispositivos Android. |
fcm_options |
Opções para recursos fornecidos pelo SDK do FCM para Android. |
direct_boot_ok |
Se definida como verdadeira, as mensagens poderão ser entregues ao app enquanto o dispositivo estiver no modo de inicialização direta. Consulte Suporte ao modo de inicialização direta. |
Prioridade de mensagem do Android
Prioridade de uma mensagem a ser enviada para dispositivos Android. Essa prioridade é um conceito do FCM que controla quando a mensagem é entregue. Veja os guias do FCM. Além disso, você pode determinar a prioridade de exibição de notificações em dispositivos Android de destino usando AndroidNotification.NotificationPreferences.
Enums | |
---|---|
NORMAL |
Prioridade padrão para mensagens de dados. As mensagens de prioridade normal não abrirão conexões de rede em um dispositivo em suspensão e a entrega delas poderá ser adiada para conservar a bateria. Para mensagens menos urgentes, como notificações de novos e-mails ou outros dados para sincronizar, escolha a prioridade de entrega normal. |
HIGH |
Prioridade padrão para mensagens de notificação. O FCM tenta enviar mensagens de prioridade alta imediatamente, permitindo que o serviço FCM ative um dispositivo em suspensão quando possível e abra uma conexão de rede com o servidor do app. Apps com alertas de mensagens instantâneas, chat ou chamada de voz, por exemplo, geralmente precisam abrir uma conexão de rede e garantir que o FCM entregue a mensagem ao dispositivo sem atraso. Defina alta prioridade se a mensagem for urgente e exigir a interação imediata do usuário, mas tenha cuidado, porque configurar suas mensagens para alta prioridade contribui mais para o consumo de bateria do que para as mensagens de prioridade normal. |
AndroidNotification
Notificação para enviar a dispositivos Android.
Representação JSON |
---|
{ "title": string, "body": string, "icon": string, "color": string, "sound": string, "tag": string, "click_action": string, "body_loc_key": string, "body_loc_args": [ string ], "title_loc_key": string, "title_loc_args": [ string ], "channel_id": string, "ticker": string, "sticky": boolean, "event_time": string, "local_only": boolean, "notification_priority": enum ( |
Campos | |
---|---|
title |
O título da notificação. Se estiver presente, ele vai substituir |
body |
O texto do corpo da notificação. Se estiver presente, ele vai substituir |
icon |
O ícone da notificação. Define o ícone da notificação como myicon para o recurso drawable myicon. Se você não enviar essa chave na solicitação, o FCM exibirá o ícone na tela de início especificado no manifesto do app. |
color |
A cor do ícone da notificação, expressa no formato #rrggbb. |
sound |
O som a ser reproduzido quando o dispositivo recebe a notificação. Compatível com "default" ou o nome de um recurso de som empacotado no app. Os arquivos de som precisam estar em /res/raw/. |
tag |
Identificador usado para substituir notificações existentes na gaveta de notificações. Se não está especificado, cada solicitação cria uma nova notificação. Se estiver especificado e uma notificação com a mesma tag já estiver sendo mostrada, a nova notificação substituirá a notificação existente na gaveta de notificações. |
click_action |
A ação associada a um clique de usuário na notificação. Se especificado, uma atividade com um filtro de intent correspondente é iniciada quando um usuário clica na notificação. |
body_loc_key |
A chave da string do corpo nos recursos de string do app a ser usada para identificar o texto do corpo na localização atual do usuário. Consulte Recursos de string para mais informações. |
body_loc_args[] |
Valores de string variáveis a serem usados no lugar dos especificadores de formato em body_loc_key para identificar o texto do corpo na localização atual do usuário. Para saber mais, consulte Formatação e estilo. |
title_loc_key |
A chave da string do título nos recursos de string do app a ser usada para identificar o texto do título na localização atual do usuário. Consulte Recursos de string para mais informações. |
title_loc_args[] |
Valores de string variáveis a serem usados no lugar dos especificadores de formato em title_loc_key para identificar o texto do título na localização atual do usuário. Para saber mais, consulte Formatação e estilo. |
channel_id |
O ID do canal da notificação (novo no Android O). O app precisa criar um canal com este ID do canal antes que qualquer notificação com ele seja recebida. Se você não enviar esse ID do canal na solicitação ou se o ID do canal fornecido ainda não tiver sido criado pelo app, o FCM usará o ID do canal especificado no manifesto do app. |
ticker |
Define o "ticker" que é enviado aos serviços de acessibilidade. Antes do nível 21 da API ( |
sticky |
Se for definida como falsa ou deixada sem definição, a notificação será dispensada automaticamente quando o usuário clicar nela no painel. Quando definida como verdadeira, a notificação persiste mesmo quando o usuário clica nela. |
event_time |
Defina a hora em que o evento na notificação ocorreu. As notificações no painel são classificadas por esse horário. Um ponto no tempo é representado usando protobuf.Timestamp. Um carimbo de data/hora no formato RFC3339 UTC "Zulu", com resolução de nanossegundos e até nove dígitos fracionários. Exemplos: |
local_only |
Defina se a notificação é relevante apenas para o dispositivo atual. Algumas notificações podem ser conectadas a outros dispositivos para exibição remota, como um relógio Wear OS. Essa dica pode ser configurada para recomendar que a notificação não seja transmitida. Consulte os guias do Wear OS. |
notification_priority |
Defina a prioridade relativa para essa notificação. A prioridade é uma indicação de quanta atenção do usuário deve ser consumida pela notificação. As notificações de baixa prioridade podem ficar ocultas para o usuário em determinadas situações, e o usuário pode ser interrompido por uma notificação de prioridade mais alta. O efeito de definir as mesmas prioridades pode variar um pouco dependendo da plataforma. Essa prioridade é diferente de |
default_sound |
Se definida como verdadeira, use o som padrão do framework do Android para a notificação. Os valores padrão são especificados em config.xml. |
default_vibrate_timings |
Se definida como verdadeira, use o padrão de vibração padrão do framework do Android para a notificação. Os valores padrão são especificados em config.xml. Se |
default_light_settings |
Se a política for definida como verdadeira, use as configurações de luz de LED padrão do framework do Android para a notificação. Os valores padrão são especificados em config.xml. Se |
vibrate_timings[] |
Defina o padrão de vibração a ser usado. Transmita uma matriz de protobuf.Duration para ativar ou desativar a vibração. O primeiro valor indica o Duração em segundos com até nove dígitos fracionários, terminando em " |
visibility |
Defina a Notification.visibility da notificação. |
notification_count |
Define o número de itens que essa notificação representa. Pode ser exibido como uma contagem de selos para telas de início compatíveis.Consulte Selo de notificação. Por exemplo, isso pode ser útil se você estiver usando apenas uma notificação para representar várias novas mensagens, mas quiser que a contagem represente o número total de novas mensagens. Se for zero ou não especificado, os sistemas compatíveis com selos vão usar o padrão, que é incrementar um número exibido no menu de pressionamento longo sempre que uma nova notificação chegar. |
light_settings |
Configurações para controlar a taxa de piscar e a cor do LED da notificação se o LED estiver disponível no dispositivo. O tempo total de piscar é controlado pelo SO. |
image |
Contém o URL de uma imagem que será exibida em uma notificação. Se estiver presente, ele vai substituir |
bypass_proxy_notification |
Se esta opção for definida, as notificações de exibição enviadas para o dispositivo serão processadas pelo app em vez do proxy. |
proxy |
Configuração para controlar quando uma notificação pode ser proxy. |
Prioridade de notificação
Níveis de prioridade de uma notificação.
Enums | |
---|---|
PRIORITY_UNSPECIFIED |
Se a prioridade não for especificada, a prioridade da notificação será definida como PRIORITY_DEFAULT . |
PRIORITY_MIN |
Prioridade de notificação mais baixa. Notificações com este PRIORITY_MIN podem não ser exibidas ao usuário, exceto em circunstâncias especiais, como registros detalhados de notificação. |
PRIORITY_LOW |
Prioridade de notificação mais baixa. A interface pode mostrar as notificações menores ou em uma posição diferente na lista, em comparação com as notificações com PRIORITY_DEFAULT . |
PRIORITY_DEFAULT |
Prioridade de notificação padrão. Se o aplicativo não priorizar as próprias notificações, use esse valor para todas as notificações. |
PRIORITY_HIGH |
Prioridade de notificação mais alta. Use essa opção para notificações ou alertas mais importantes. A interface pode mostrar essas notificações em um tamanho maior ou em uma posição diferente nas listas de notificações, em comparação com as notificações com PRIORITY_DEFAULT . |
PRIORITY_MAX |
Prioridade de notificação mais alta. Use-o para os itens mais importantes do aplicativo que exigem atenção ou entrada imediata do usuário. |
Visibilidade
Diferentes níveis de visibilidade de uma notificação.
Enums | |
---|---|
VISIBILITY_UNSPECIFIED |
Se não for especificado, o padrão será Visibility.PRIVATE . |
PRIVATE |
Mostrar esta notificação em todas as telas de bloqueio, mas ocultar informações sensíveis ou particulares em telas de bloqueio seguras. |
PUBLIC |
Mostrar essa notificação na íntegra em todas as telas de bloqueio. |
SECRET |
Não revele nenhuma parte da notificação em uma tela de bloqueio segura. |
Configurações de luz
Configurações para controlar o LED de notificações.
Representação JSON |
---|
{
"color": {
object ( |
Campos | |
---|---|
color |
Obrigatório. Defina a |
light_on_duration |
Obrigatório. Com o método Duração em segundos com até nove dígitos fracionários, terminando em " |
light_off_duration |
Obrigatório. Com o método Duração em segundos com até nove dígitos fracionários, terminando em " |
Cor
Representa uma cor no espaço de cores RGBA. Essa representação foi projetada para simplificar a conversão de e para representações de cores em vários idiomas em vez de compactação. Por exemplo, os campos dessa representação podem ser fornecidos de modo trivial ao construtor de java.awt.Color
em Java. também pode ser fornecido trivialmente ao método +colorWithRed:green:blue:alpha
do UIColor no iOS. e, com um pouco de trabalho, ele pode ser facilmente formatado em uma string CSS rgba()
em JavaScript.
Esta página de referência não tem informações sobre o espaço de cor absoluto que deve ser usado para interpretar o valor RGB, por exemplo, sRGB, Adobe RGB, DCI-P3 e BT.2020. Por padrão, os aplicativos devem usar o espaço de cores sRGB.
Quando a igualdade de cores precisa ser decidida, as implementações, a menos que documentadas de outra forma, tratem duas cores como iguais se todos os valores de vermelho, verde, azul e alfa forem diferentes em no máximo 1e-5
.
Exemplo (Java):
import com.google.type.Color;
// ...
public static java.awt.Color fromProto(Color protocolor) {
float alpha = protocolor.hasAlpha()
? protocolor.getAlpha().getValue()
: 1.0;
return new java.awt.Color(
protocolor.getRed(),
protocolor.getGreen(),
protocolor.getBlue(),
alpha);
}
public static Color toProto(java.awt.Color color) {
float red = (float) color.getRed();
float green = (float) color.getGreen();
float blue = (float) color.getBlue();
float denominator = 255.0;
Color.Builder resultBuilder =
Color
.newBuilder()
.setRed(red / denominator)
.setGreen(green / denominator)
.setBlue(blue / denominator);
int alpha = color.getAlpha();
if (alpha != 255) {
result.setAlpha(
FloatValue
.newBuilder()
.setValue(((float) alpha) / denominator)
.build());
}
return resultBuilder.build();
}
// ...
Exemplo (iOS/Obj-C):
// ...
static UIColor* fromProto(Color* protocolor) {
float red = [protocolor red];
float green = [protocolor green];
float blue = [protocolor blue];
FloatValue* alpha_wrapper = [protocolor alpha];
float alpha = 1.0;
if (alpha_wrapper != nil) {
alpha = [alpha_wrapper value];
}
return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
}
static Color* toProto(UIColor* color) {
CGFloat red, green, blue, alpha;
if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
return nil;
}
Color* result = [[Color alloc] init];
[result setRed:red];
[result setGreen:green];
[result setBlue:blue];
if (alpha <= 0.9999) {
[result setAlpha:floatWrapperWithValue(alpha)];
}
[result autorelease];
return result;
}
// ...
Exemplo (JavaScript):
// ...
var protoToCssColor = function(rgb_color) {
var redFrac = rgb_color.red || 0.0;
var greenFrac = rgb_color.green || 0.0;
var blueFrac = rgb_color.blue || 0.0;
var red = Math.floor(redFrac * 255);
var green = Math.floor(greenFrac * 255);
var blue = Math.floor(blueFrac * 255);
if (!('alpha' in rgb_color)) {
return rgbToCssColor(red, green, blue);
}
var alphaFrac = rgb_color.alpha.value || 0.0;
var rgbParams = [red, green, blue].join(',');
return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
};
var rgbToCssColor = function(red, green, blue) {
var rgbNumber = new Number((red << 16) | (green << 8) | blue);
var hexString = rgbNumber.toString(16);
var missingZeros = 6 - hexString.length;
var resultBuilder = ['#'];
for (var i = 0; i < missingZeros; i++) {
resultBuilder.push('0');
}
resultBuilder.push(hexString);
return resultBuilder.join('');
};
// ...
Representação JSON |
---|
{ "red": number, "green": number, "blue": number, "alpha": number } |
Campos | |
---|---|
red |
A quantidade de vermelho na cor como um valor no intervalo [0, 1]. |
green |
A quantidade de verde na cor como um valor no intervalo [0, 1]. |
blue |
A quantidade de azul na cor como um valor no intervalo [0, 1]. |
alpha |
A fração desta cor que deve ser aplicada ao pixel. Ou seja, a cor final do pixel é definida pela equação:
Isto significa que um valor de 1,0 corresponde a uma cor sólida, enquanto um valor de 0,0 corresponde a uma cor completamente transparente. Esse recurso usa uma mensagem de wrapper, em vez de um escalar flutuante simples, para que seja possível distinguir entre um valor padrão e o valor que está sendo desativado. Se omitido, esse objeto de cor é renderizado como uma cor sólida (como se o valor alfa tivesse recebido explicitamente o valor 1,0). |
Proxy
Configuração para controlar quando uma notificação pode ser proxy.
Enums | |
---|---|
PROXY_UNSPECIFIED |
Se não for especificado, o padrão será Proxy.IF_PRIORITY_LOWERED . |
ALLOW |
Tente usar essa notificação como proxy. |
DENY |
Não use essa notificação como proxy. |
IF_PRIORITY_LOWERED |
Tente fazer o proxy dessa notificação apenas se o AndroidMessagePriority tiver diminuído de HIGH para NORMAL no dispositivo. |
AndroidFcmOptions
Opções para recursos fornecidos pelo SDK do FCM para Android.
Representação JSON |
---|
{ "analytics_label": string } |
Campos | |
---|---|
analytics_label |
Rótulo associado aos dados de análise da mensagem. |
WebpushConfig
Opções do protocolo Webpush.
Representação JSON |
---|
{
"headers": {
string: string,
...
},
"data": {
string: string,
...
},
"notification": {
object
},
"fcm_options": {
object ( |
Campos | |
---|---|
headers |
Cabeçalhos HTTP definidos no protocolo webpush. Consulte o protocolo Webpush para ver os cabeçalhos aceitos, por exemplo: "TTL": "15". Um objeto com uma lista de pares |
data |
Payload de chave/valor arbitrário. Se estiver presente, ele vai substituir Um objeto com uma lista de pares |
notification |
Opções de notificação da Web como um objeto JSON. Oferece suporte às propriedades de instância de notificação, conforme definido na API Web Notification. Se presente, "título" e "body" os campos substituem |
fcm_options |
Opções para recursos fornecidos pelo SDK do FCM para a Web. |
WebpushFcmOptions
Opções para recursos fornecidos pelo SDK do FCM para a Web.
Representação JSON |
---|
{ "link": string, "analytics_label": string } |
Campos | |
---|---|
link |
O link a ser aberto quando o usuário clicar na notificação. Um HTTPS é obrigatório para todos os valores de URL. |
analytics_label |
Rótulo associado aos dados de análise da mensagem. |
ApnsConfig
Opções específicas do Apple Push Notification Service.
Representação JSON |
---|
{
"headers": {
string: string,
...
},
"payload": {
object
},
"fcm_options": {
object ( |
Campos | |
---|---|
headers |
Cabeçalhos de solicitação HTTP definidos no Apple Push Notification Service. Consulte os cabeçalhos de solicitação de APNs para ver os cabeçalhos aceitos, como O back-end define um valor padrão para Um objeto com uma lista de pares |
payload |
o payload de APNs como um objeto JSON, incluindo o dicionário |
fcm_options |
Opções para recursos fornecidos pelo SDK do FCM para iOS. |
ApnsFcmOptions
Opções para recursos fornecidos pelo SDK do FCM para iOS.
Representação JSON |
---|
{ "analytics_label": string, "image": string } |
Campos | |
---|---|
analytics_label |
Rótulo associado aos dados de análise da mensagem. |
image |
Contém o URL de uma imagem que será exibida em uma notificação. Se estiver presente, ele vai substituir |
FcmOptions
Opções independentes da plataforma para recursos fornecidos pelos SDKs do FCM.
Representação JSON |
---|
{ "analytics_label": string } |
Campos | |
---|---|
analytics_label |
Rótulo associado aos dados de análise da mensagem. |
Métodos |
|
---|---|
|
Envia uma mensagem para o destino especificado (um token de registro, tópico ou condição). |