Recurso: Mensagem
Mensagem a ser enviada pelo Firebase Cloud Messaging Service.
Representação JSON |
---|
{ "name": string, "data": { string: string, ... }, "notification": { object ( |
Campos | |
---|---|
name | Somente saída. O identificador da mensagem enviada, no formato de |
data | Apenas entrada. Carga útil de chave/valor arbitrária, que deve ser codificada em UTF-8. A chave não deve ser uma palavra reservada ("from", "message_type" ou qualquer palavra que comece com "google" ou "gcm"). Ao enviar cargas contendo apenas campos de dados para dispositivos iOS, apenas a prioridade normal ( Um objeto que contém uma lista de pares |
notification | Apenas entrada. Modelo básico de notificação para usar em todas as plataformas. |
android | Apenas entrada. Opções específicas do Android para mensagens enviadas através do servidor de conexão FCM . |
webpush | Apenas entrada. Opções de protocolo Webpush . |
apns | Apenas entrada. Opções específicas do Apple Push Notification Service . |
fcm_options | Apenas entrada. Modelo para opções de recursos do SDK do FCM para uso em todas as plataformas. |
target do campo da união. Obrigatório. Apenas entrada. Alvo para o qual enviar uma mensagem. target pode ser apenas um dos seguintes: | |
token | Token de registro para enviar uma mensagem. |
topic | Nome do tópico para o qual enviar uma mensagem, por exemplo, "clima". Nota: o prefixo "/topics/" não deve ser fornecido. |
condition | Condição para enviar uma mensagem, por exemplo, "'foo' nos tópicos && 'bar' nos tópicos". |
Notificação
Modelo básico de notificação 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á baixada no dispositivo e exibida em uma notificação. JPEG, PNG, BMP têm suporte total em todas as plataformas. GIF animado e vídeo só funcionam no iOS. WebP e HEIF têm vários níveis 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 hospedagem de imagens no Firebase Storage: https://firebase.google.com/pricing |
AndroidConfig
Opções específicas do Android para mensagens enviadas através do servidor de conexão FCM .
Representação JSON |
---|
{ "collapse_key": string, "priority": enum ( |
Campos | |
---|---|
collapse_key | Um identificador de um grupo de mensagens que pode ser recolhido, para que apenas a última mensagem seja enviada quando a entrega puder ser retomada. São permitidas no máximo 4 chaves de recolhimento diferentes a qualquer momento. |
priority | Prioridade da mensagem. Pode assumir valores "normais" e "altos". Para obter 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. O tempo máximo de vida suportado é de 4 semanas e o valor padrão é de 4 semanas se não for definido. Defina como 0 se quiser enviar a mensagem imediatamente. No formato JSON, o tipo Duration é codificado como uma string em vez de um objeto, onde a string termina com o sufixo "s" (indicando segundos) e é precedida pelo número de segundos, com nanossegundos expressos como segundos fracionários. Por exemplo, 3 segundos com 0 nanossegundos devem ser codificados no formato JSON como "3s", enquanto 3 segundos e 1 nanossegundo devem ser expressos no formato JSON como "3.000000001s". O ttl será arredondado para o segundo mais próximo. Uma duração em segundos com até nove dígitos fracionários, terminando com ' |
restricted_package_name | Nome do pacote do aplicativo ao qual o token de registro deve corresponder para receber a mensagem. |
data | Carga útil de chave/valor arbitrária. Se presente, substituirá Um objeto que contém uma lista de pares |
notification | Notificação para enviar para dispositivos Android. |
fcm_options | Opções de recursos fornecidos pelo SDK do FCM para Android. |
direct_boot_ok | Se definido como verdadeiro, as mensagens poderão ser entregues ao aplicativo enquanto o dispositivo estiver no modo de inicialização direta. Consulte Suporte ao modo de inicialização direta . |
AndroidMessagePriority
Prioridade de uma mensagem a ser enviada para dispositivos Android. Observe que esta prioridade é um conceito do FCM que controla quando a mensagem é entregue. Consulte os guias do FCM . Além disso, você pode determinar a prioridade de exibição de notificações em dispositivos Android direcionados usando AndroidNotification.NotificationPriority .
Enums | |
---|---|
NORMAL | Prioridade padrão para mensagens de dados. Mensagens de prioridade normal não abrirão conexões de rede em um dispositivo inativo e sua entrega poderá ser atrasada para economizar 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 entregar mensagens de alta prioridade imediatamente, permitindo que o serviço FCM desperte um dispositivo inativo quando possível e abra uma conexão de rede com seu servidor de aplicativos. Aplicativos com alertas de mensagens instantâneas, bate-papo ou chamadas de voz, por exemplo, geralmente precisam abrir uma conexão de rede e garantir que o FCM entregue a mensagem ao dispositivo sem demora. Defina alta prioridade se a mensagem for urgente e exigir a interação imediata do usuário, mas tenha cuidado, pois definir suas mensagens como alta prioridade contribui mais para o consumo de bateria em comparação com mensagens de prioridade normal. |
Notificação Android
Notificação para enviar para 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 presente, substituirá |
body | O texto do corpo da notificação. Se presente, substituirá |
icon | O ícone da notificação. Define o ícone de notificação como myicon para o recurso drawable myicon. Se você não enviar essa chave na solicitação, o FCM exibirá o ícone do iniciador especificado no manifesto do seu aplicativo. |
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. Suporta "padrão" ou o nome do arquivo de um recurso de som incluído no aplicativo. Os arquivos de som devem residir em /res/raw/. |
tag | Identificador usado para substituir notificações existentes na gaveta de notificações. Se não for especificado, cada solicitação criará uma nova notificação. Se especificado e uma notificação com a mesma tag já estiver sendo mostrada, a nova notificação substituirá a existente na gaveta de notificações. |
click_action | A ação associada a um clique do usuário na notificação. Se especificado, uma atividade com um filtro de intenção correspondente será iniciada quando um usuário clicar na notificação. |
body_loc_key | A chave para a string do corpo nos recursos de string do aplicativo a serem usados para localizar o texto do corpo para a localização atual do usuário. Consulte Recursos de String para obter mais informações. |
body_loc_args[] | Valores de string variáveis a serem usados no lugar dos especificadores de formato em body_loc_key a serem usados para localizar o texto do corpo para a localização atual do usuário. Consulte Formatação e estilo para obter mais informações. |
title_loc_key | A chave para a string de título nos recursos de string do aplicativo a serem usados para localizar o texto do título para a localização atual do usuário. Consulte Recursos de String para obter mais informações. |
title_loc_args[] | Valores de string variáveis a serem usados no lugar dos especificadores de formato em title_loc_key a serem usados para localizar o texto do título para a localização atual do usuário. Consulte Formatação e estilo para obter mais informações. |
channel_id | O ID do canal da notificação (novo no Android O). O aplicativo deve criar um canal com esse ID de canal antes que qualquer notificação com esse ID de canal seja recebida. Se você não enviar esse ID de canal na solicitação ou se o ID de canal fornecido ainda não tiver sido criado pelo aplicativo, o FCM usará o ID de canal especificado no manifesto do aplicativo. |
ticker | Define o texto do “ticker”, que é enviado aos serviços de acessibilidade. Antes do nível 21 da API ( |
sticky | Quando definida como falsa ou não definida, a notificação é automaticamente dispensada quando o usuário clica 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 ocorreu o evento na notificação. 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 esta notificação é ou não relevante apenas para o dispositivo atual. Algumas notificações podem ser transferidas para outros dispositivos para exibição remota, como um relógio Wear OS. Esta dica pode ser definida para recomendar que esta notificação não seja interligada. Consulte os guias do Wear OS |
notification_priority | Defina a prioridade relativa para esta notificação. A prioridade é uma indicação de quanto da atenção do usuário deve ser consumida por esta notificação. As notificações de baixa prioridade podem ficar ocultas do usuário em determinadas situações, enquanto o usuário pode ser interrompido para uma notificação de prioridade mais alta. O efeito de definir as mesmas prioridades pode diferir ligeiramente em plataformas diferentes. Observe que esta prioridade difere de |
default_sound | Se definido como verdadeiro, use o som padrão da estrutura do Android para a notificação. Os valores padrão são especificados em config.xml . |
default_vibrate_timings | Se definido como verdadeiro, use o padrão de vibração padrão da estrutura Android para a notificação. Os valores padrão são especificados em config.xml . Se |
default_light_settings | Se definido como verdadeiro, use as configurações de luz LED padrão da estrutura 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. Passe uma série de protobuf.Duration para ligar ou desligar o vibrador. O primeiro valor indica o Uma duração em segundos com até nove dígitos fracionários, terminando com ' |
visibility | Defina o Notification.visibility da notificação. |
notification_count | Define o número de itens que esta notificação representa. Pode ser exibido como uma contagem de emblemas para lançadores que suportam emblemas. Consulte Emblema de notificação . Por exemplo, isso pode ser útil se você estiver usando apenas uma notificação para representar várias mensagens novas, mas quiser que a contagem aqui represente o número total de novas mensagens. Se for zero ou não especificado, os sistemas que suportam crachás usam o padrão, que é incrementar um número exibido no menu pressionado cada vez que uma nova notificação chega. |
light_settings | Configurações para controlar a taxa de intermitência e a cor do LED da notificação se o LED estiver disponível no dispositivo. O tempo total de piscar é controlado pelo sistema operacional. |
image | Contém o URL de uma imagem que será exibida em uma notificação. Se presente, substituirá |
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. As notificações com este PRIORITY_MIN podem não ser mostradas ao usuário, exceto em circunstâncias especiais, como registros de notificação detalhados. |
PRIORITY_LOW | Menor prioridade de notificação. A IU pode optar por mostrar as notificações em tamanho menor ou em uma posição diferente na lista, em comparação com notificações com PRIORITY_DEFAULT . |
PRIORITY_DEFAULT | Prioridade de notificação padrão. Se o aplicativo não priorizar suas próprias notificações, use esse valor para todas as notificações. |
PRIORITY_HIGH | Maior prioridade de notificação. Use isto para notificações ou alertas mais importantes. A IU pode optar por mostrar essas notificações maiores ou em uma posição diferente nas listas de notificações, em comparação com notificações com PRIORITY_DEFAULT . |
PRIORITY_MAX | Maior prioridade de notificação. Use isto para os itens mais importantes do aplicativo que requerem 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 | Mostre esta notificação em todas as telas de bloqueio, mas oculte informações confidenciais ou privadas em telas de bloqueio seguras. |
PUBLIC | Mostre esta notificação na íntegra em todas as telas de bloqueio. |
SECRET | Não revele nenhuma parte desta notificação em uma tela de bloqueio segura. |
Configurações de luz
Configurações para controlar o LED de notificação.
Representação JSON |
---|
{
"color": {
object ( |
Campos | |
---|---|
color | Obrigatório. Defina |
light_on_duration | Obrigatório. Junto com Uma duração em segundos com até nove dígitos fracionários, terminando com ' |
light_off_duration | Obrigatório. Junto com Uma duração em segundos com até nove dígitos fracionários, terminando com ' |
Cor
Representa uma cor no espaço de cores RGBA. Esta representação foi projetada para simplificar a conversão de/para representações de cores em vários idiomas, em vez de ser compacta. Por exemplo, os campos desta representação podem ser fornecidos trivialmente ao construtor de java.awt.Color
em Java; também pode ser fornecido trivialmente ao método +colorWithRed:green:blue:alpha
UIColor no iOS; e, com apenas um pouco de trabalho, pode ser facilmente formatado em uma string CSS rgba()
em JavaScript.
Esta página de referência não contém informações sobre o espaço de cores absoluto que deve ser usado para interpretar o valor RGB (por exemplo, sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). Por padrão, os aplicativos devem assumir o espaço de cores sRGB.
Quando a igualdade de cores precisa ser decidida, as implementações, a menos que documentado de outra forma, tratam duas cores como iguais se todos os seus valores de vermelho, verde, azul e alfa diferirem 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: Isso 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. Isso usa uma mensagem wrapper em vez de um simples escalar flutuante para que seja possível distinguir entre um valor padrão e o valor que não está definido. Se omitido, esse objeto de cor será renderizado como uma cor sólida (como se o valor alfa tivesse recebido explicitamente um valor de 1,0). |
Opções AndroidFcm
Opções de recursos fornecidos pelo SDK do FCM para Android.
Representação JSON |
---|
{ "analytics_label": string } |
Campos | |
---|---|
analytics_label | Rótulo associado aos dados analíticos da mensagem. |
WebpushConfig
Opções de 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 cabeçalhos suportados, por exemplo, "TTL": "15". Um objeto que contém uma lista de pares |
data | Carga útil de chave/valor arbitrária. Se presente, substituirá Um objeto que contém uma lista de pares |
notification | Opções de notificação da Web como um objeto JSON. Suporta propriedades de instância de notificação conforme definido na API de notificação da Web . Se presentes, os campos "title" e "body" substituem |
fcm_options | Opções de recursos fornecidos pelo FCM SDK for Web. |
Opções WebpushFcm
Opções de recursos fornecidos pelo FCM SDK for Web.
Representação JSON |
---|
{ "link": string, "analytics_label": string } |
Campos | |
---|---|
link | O link a ser aberto quando o usuário clica na notificação. Para todos os valores de URL, HTTPS é obrigatório. |
analytics_label | Rótulo associado aos dados analíticos 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 suportados, como O back-end define um valor padrão para Um objeto que contém uma lista de pares |
payload | Carga útil de APNs como um objeto JSON, incluindo dicionário |
fcm_options | Opções de recursos fornecidos pelo SDK do FCM para iOS. |
Opções ApnsFcm
Opções de recursos fornecidos pelo SDK do FCM para iOS.
Representação JSON |
---|
{ "analytics_label": string, "image": string } |
Campos | |
---|---|
analytics_label | Rótulo associado aos dados analíticos da mensagem. |
image | Contém o URL de uma imagem que será exibida em uma notificação. Se presente, substituirá |
Opções Fcm
Opções independentes de plataforma para recursos fornecidos pelos SDKs do FCM.
Representação JSON |
---|
{ "analytics_label": string } |
Campos | |
---|---|
analytics_label | Rótulo associado aos dados analíticos da mensagem. |
Métodos | |
---|---|
| Envie uma mensagem para um destino especificado (um token de registro, tópico ou condição). |