Recurso: Mensaje
Mensaje para enviar por Firebase Cloud Messaging Service.
Representación JSON |
---|
{ "name": string, "data": { string: string, ... }, "notification": { object ( |
Campos | |
---|---|
name | Solo salida. El identificador del mensaje enviado, en el formato de |
data | Solo entrada. Carga útil de clave/valor arbitraria, que debe estar codificada en UTF-8. La clave no debe ser una palabra reservada ("from", "message_type" o cualquier palabra que comience con "google" o "gcm"). Al enviar cargas útiles que contienen solo campos de datos a dispositivos iOS, solo se permite la prioridad normal ( Un objeto que contiene una lista de |
notification | Solo entrada. Plantilla de notificación básica para usar en todas las plataformas. |
android | Solo entrada. Opciones específicas de Android para mensajes enviados a través del servidor de conexión FCM . |
webpush | Solo entrada. Opciones de protocolo Webpush . |
apns | Solo entrada. Opciones específicas del servicio de notificaciones push de Apple . |
fcm_options | Solo entrada. Plantilla para las opciones de características del SDK de FCM para usar en todas las plataformas. |
target de campo de unión. Requerido. Solo entrada. Destino al que enviar un mensaje. El target solo puede ser uno de los siguientes: | |
token | Token de registro para enviar un mensaje. |
topic | Nombre del tema al que enviar un mensaje, por ejemplo, "clima". Nota: no se debe proporcionar el prefijo "/temas/". |
condition | Condición para enviar un mensaje, por ejemplo, "'foo' en temas && 'bar' en temas". |
Notificación
Plantilla de notificación básica para usar en todas las plataformas.
Representación JSON |
---|
{ "title": string, "body": string, "image": string } |
Campos | |
---|---|
title | El título de la notificación. |
body | El texto del cuerpo de la notificación. |
image | Contiene la URL de una imagen que se descargará en el dispositivo y se mostrará en una notificación. JPEG, PNG, BMP tienen soporte completo en todas las plataformas. El GIF animado y el video solo funcionan en iOS. WebP y HEIF tienen diferentes niveles de compatibilidad entre plataformas y versiones de plataformas. Android tiene un límite de tamaño de imagen de 1 MB. Uso de cuotas e implicaciones/costos para alojar imágenes en Firebase Storage: https://firebase.google.com/pricing |
Configuración de Android
Opciones específicas de Android para mensajes enviados a través del servidor de conexión FCM .
Representación JSON |
---|
{ "collapse_key": string, "priority": enum ( |
Campos | |
---|---|
collapse_key | Un identificador de un grupo de mensajes que se puede colapsar, de modo que solo se envíe el último mensaje cuando se pueda reanudar la entrega. Se permite un máximo de 4 claves de contracción diferentes en un momento dado. |
priority | Prioridad de mensajes. Puede tomar valores "normales" y "altos". Para obtener más información, consulte Establecer la prioridad de un mensaje . |
ttl | Cuánto tiempo (en segundos) se debe mantener el mensaje en el almacenamiento de FCM si el dispositivo está fuera de línea. El tiempo máximo de vida admitido es de 4 semanas y el valor predeterminado es de 4 semanas si no se establece. Establézcalo en 0 si desea enviar el mensaje de inmediato. En formato JSON, el tipo Duración se codifica como una cadena en lugar de un objeto, donde la cadena termina con el sufijo "s" (que indica segundos) y está precedida por la cantidad de segundos, con nanosegundos expresados como fracciones de segundo. Por ejemplo, 3 segundos con 0 nanosegundos deben codificarse en formato JSON como "3s", mientras que 3 segundos y 1 nanosegundo deben expresarse en formato JSON como "3.000000001s". El ttl se redondeará al segundo más cercano. Una duración en segundos con hasta nueve dígitos fraccionarios, terminando en ' |
restricted_package_name | Nombre del paquete de la aplicación donde debe coincidir el token de registro para recibir el mensaje. |
data | Carga útil de clave/valor arbitraria. Si está presente, anulará Un objeto que contiene una lista de |
notification | Notificación para enviar a dispositivos Android. |
fcm_options | Opciones para funciones proporcionadas por FCM SDK para Android. |
direct_boot_ok | Si se establece en verdadero, se permitirá que los mensajes se entreguen a la aplicación mientras el dispositivo esté en modo de arranque directo. Consulte Admite el modo de arranque directo . |
AndroidMessagePriority
Prioridad de un mensaje para enviar a dispositivos Android. Tenga en cuenta que esta prioridad es un concepto de FCM que controla cuándo se entrega el mensaje. Consulte las guías de FCM . Además, puede determinar la prioridad de visualización de notificaciones en dispositivos Android específicos mediante AndroidNotification.NotificationPriority .
Enumeraciones | |
---|---|
NORMAL | Prioridad predeterminada para mensajes de datos. Los mensajes de prioridad normal no abrirán conexiones de red en un dispositivo inactivo y es posible que su entrega se retrase para conservar la batería. Para mensajes menos sensibles al tiempo, como notificaciones de correo electrónico nuevo u otros datos para sincronizar, elija la prioridad de entrega normal. |
HIGH | Prioridad predeterminada para los mensajes de notificación. FCM intenta entregar mensajes de alta prioridad de inmediato, lo que permite que el servicio de FCM active un dispositivo inactivo cuando sea posible y abra una conexión de red a su servidor de aplicaciones. Las aplicaciones con alertas de mensajería instantánea, chat o llamadas de voz, por ejemplo, generalmente necesitan abrir una conexión de red y asegurarse de que FCM entregue el mensaje al dispositivo sin demora. Establezca una prioridad alta si el mensaje es urgente y requiere la interacción inmediata del usuario, pero tenga en cuenta que establecer sus mensajes en alta prioridad contribuye más al agotamiento de la batería en comparación con los mensajes de prioridad normal. |
AndroidNotificación
Notificación para enviar a dispositivos Android.
Representación 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 | El título de la notificación. Si está presente, anulará |
body | El texto del cuerpo de la notificación. Si está presente, anulará |
icon | El icono de la notificación. Establece el ícono de notificación en myicon para myicon de recurso dibujable. Si no envía esta clave en la solicitud, FCM muestra el ícono del iniciador especificado en el manifiesto de su aplicación. |
color | El color del icono de la notificación, expresado en formato #rrggbb. |
sound | El sonido que se reproducirá cuando el dispositivo reciba la notificación. Admite "predeterminado" o el nombre de archivo de un recurso de sonido incluido en la aplicación. Los archivos de sonido deben residir en /res/raw/. |
tag | Identificador utilizado para reemplazar las notificaciones existentes en el cajón de notificaciones. Si no se especifica, cada solicitud crea una nueva notificación. Si se especifica y ya se muestra una notificación con la misma etiqueta, la nueva notificación reemplaza a la existente en el cajón de notificaciones. |
click_action | La acción asociada a un clic de usuario en la notificación. Si se especifica, se inicia una actividad con un filtro de intención coincidente cuando un usuario hace clic en la notificación. |
body_loc_key | La clave de la cadena del cuerpo en los recursos de cadena de la aplicación que se usará para localizar el texto del cuerpo en la localización actual del usuario. Consulte Recursos de cadenas para obtener más información. |
body_loc_args[] | Valores de cadena variables que se usarán en lugar de los especificadores de formato en body_loc_key para localizar el texto del cuerpo en la ubicación actual del usuario. Consulte Formato y estilo para obtener más información. |
title_loc_key | La clave de la cadena de título en los recursos de cadena de la aplicación que se usará para localizar el texto del título en la localización actual del usuario. Consulte Recursos de cadenas para obtener más información. |
title_loc_args[] | Valores de cadena variables que se utilizarán en lugar de los especificadores de formato en title_loc_key para localizar el texto del título en la localización actual del usuario. Consulte Formato y estilo para obtener más información. |
channel_id | La identificación del canal de notificación (nuevo en Android O). La aplicación debe crear un canal con este ID de canal antes de recibir cualquier notificación con este ID de canal. Si no envía este ID de canal en la solicitud, o si la aplicación aún no ha creado el ID de canal proporcionado, FCM usa el ID de canal especificado en el manifiesto de la aplicación. |
ticker | Establece el texto del "ticker", que se envía a los servicios de accesibilidad. Antes del nivel de API 21 ( |
sticky | Cuando se establece en falso o no se establece, la notificación se descarta automáticamente cuando el usuario hace clic en ella en el panel. Cuando se establece en verdadero, la notificación persiste incluso cuando el usuario hace clic en ella. |
event_time | Establezca la hora en que ocurrió el evento en la notificación. Las notificaciones en el panel se ordenan por hora. Un punto en el tiempo se representa usando protobuf.Timestamp . Una marca de tiempo en formato RFC3339 UTC "Zulu", con resolución de nanosegundos y hasta nueve dígitos fraccionarios. Ejemplos: |
local_only | Establezca si esta notificación es relevante o no solo para el dispositivo actual. Algunas notificaciones se pueden vincular a otros dispositivos para visualización remota, como un reloj Wear OS. Esta sugerencia se puede configurar para recomendar que esta notificación no se puentee. Consulte las guías de Wear OS |
notification_priority | Establezca la prioridad relativa para esta notificación. La prioridad es una indicación de la cantidad de atención del usuario que debe consumir esta notificación. Las notificaciones de baja prioridad pueden ocultarse al usuario en ciertas situaciones, mientras que el usuario puede ser interrumpido por una notificación de mayor prioridad. El efecto de establecer las mismas prioridades puede diferir ligeramente en diferentes plataformas. Tenga en cuenta que esta prioridad difiere de |
default_sound | Si se establece en verdadero, use el sonido predeterminado del marco de trabajo de Android para la notificación. Los valores predeterminados se especifican en config.xml . |
default_vibrate_timings | Si se establece en verdadero, use el patrón de vibración predeterminado del marco de trabajo de Android para la notificación. Los valores predeterminados se especifican en config.xml . Si |
default_light_settings | Si se establece en verdadero, use la configuración de luz LED predeterminada del marco de trabajo de Android para la notificación. Los valores predeterminados se especifican en config.xml . Si |
vibrate_timings[] | Configure el patrón de vibración a utilizar. Pase una matriz de protobuf . Duración para encender o apagar el vibrador. El primer valor indica la Una duración en segundos con hasta nueve dígitos fraccionarios, terminando en ' |
visibility | Configure la Notificación.visibilidad de la notificación. |
notification_count | Establece el número de elementos que representa esta notificación. Puede mostrarse como un recuento de insignias para los lanzadores que admiten insignias. Consulte Insignia de notificación . Por ejemplo, esto podría ser útil si usa solo una notificación para representar varios mensajes nuevos, pero desea que el recuento aquí represente la cantidad total de mensajes nuevos. Si es cero o no se especifica, los sistemas que admiten la credencialización usan el valor predeterminado, que consiste en incrementar un número que se muestra en el menú de pulsación prolongada cada vez que llega una nueva notificación. |
light_settings | Configuraciones para controlar la velocidad de parpadeo del LED de la notificación y el color si el LED está disponible en el dispositivo. El tiempo total de parpadeo está controlado por el sistema operativo. |
image | Contiene la URL de una imagen que se va a mostrar en una notificación. Si está presente, anulará |
NotificaciónPrioridad
Niveles de prioridad de una notificación.
Enumeraciones | |
---|---|
PRIORITY_UNSPECIFIED | Si no se especifica la prioridad, la prioridad de notificación se establece en PRIORITY_DEFAULT . |
PRIORITY_MIN | Prioridad de notificación más baja. Es posible que las notificaciones con este PRIORITY_MIN no se muestren al usuario, excepto en circunstancias especiales, como registros de notificación detallados. |
PRIORITY_LOW | Menor prioridad de notificación. La interfaz de usuario puede optar por mostrar las notificaciones más pequeñas o en una posición diferente en la lista, en comparación con las notificaciones con PRIORITY_DEFAULT . |
PRIORITY_DEFAULT | Prioridad de notificación predeterminada. Si la aplicación no prioriza sus propias notificaciones, use este valor para todas las notificaciones. |
PRIORITY_HIGH | Mayor prioridad de notificación. Use esto para notificaciones o alertas más importantes. La interfaz de usuario puede optar por mostrar estas notificaciones más grandes o en una posición diferente en las listas de notificaciones, en comparación con las notificaciones con PRIORITY_DEFAULT . |
PRIORITY_MAX | Prioridad de notificación más alta. Úselo para los elementos más importantes de la aplicación que requieren la atención o entrada inmediata del usuario. |
Visibilidad
Diferentes niveles de visibilidad de una notificación.
Enumeraciones | |
---|---|
VISIBILITY_UNSPECIFIED | Si no se especifica, el valor predeterminado es Visibility.PRIVATE . |
PRIVATE | Muestre esta notificación en todas las pantallas de bloqueo, pero oculte información confidencial o privada en pantallas de bloqueo seguras. |
PUBLIC | Muestra esta notificación en su totalidad en todas las pantallas de bloqueo. |
SECRET | No revele ninguna parte de esta notificación en una pantalla de bloqueo segura. |
Ajustes de luz
Configuración para controlar el LED de notificación.
Representación JSON |
---|
{
"color": {
object ( |
Campos | |
---|---|
color | Requerido. Establezca el |
light_on_duration | Requerido. Junto con Una duración en segundos con hasta nueve dígitos fraccionarios, terminando en ' |
light_off_duration | Requerido. Junto con Una duración en segundos con hasta nueve dígitos fraccionarios, terminando en ' |
Color
Representa un color en el espacio de color RGBA. Esta representación está diseñada para simplificar la conversión a/desde representaciones de color en varios idiomas por encima de la compacidad. Por ejemplo, los campos de esta representación se pueden proporcionar de manera trivial al constructor de java.awt.Color
en Java; también se puede proporcionar de manera trivial al método +colorWithRed:green:blue:alpha
de UIColor en iOS; y, con solo un poco de trabajo, se puede formatear fácilmente en una cadena CSS rgba()
en JavaScript.
Esta página de referencia no contiene información sobre el espacio de color absoluto que debe usarse para interpretar el valor RGB (p. ej., sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). De forma predeterminada, las aplicaciones deben asumir el espacio de color sRGB.
Cuando es necesario decidir la igualdad de color, las implementaciones, a menos que se documente lo contrario, tratan dos colores como iguales si todos sus valores rojo, verde, azul y alfa difieren cada uno en un máximo de 1e-5.
Ejemplo (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();
}
// ...
Ejemplo (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;
}
// ...
Ejemplo (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('');
};
// ...
Representación JSON |
---|
{ "red": number, "green": number, "blue": number, "alpha": number } |
Campos | |
---|---|
red | La cantidad de rojo en el color como un valor en el intervalo [0, 1]. |
green | La cantidad de verde en el color como valor en el intervalo [0, 1]. |
blue | La cantidad de azul en el color como valor en el intervalo [0, 1]. |
alpha | La fracción de este color que debe aplicarse al píxel. Es decir, el color del píxel final está definido por la ecuación: Esto significa que un valor de 1,0 corresponde a un color sólido, mientras que un valor de 0,0 corresponde a un color completamente transparente. Esto utiliza un mensaje contenedor en lugar de un simple escalar flotante para que sea posible distinguir entre un valor predeterminado y el valor que no se establece. Si se omite, este objeto de color se representa como un color sólido (como si al valor alfa se le hubiera dado explícitamente un valor de 1,0). |
AndroidFcmOpciones
Opciones para funciones proporcionadas por FCM SDK para Android.
Representación JSON |
---|
{ "analytics_label": string } |
Campos | |
---|---|
analytics_label | Etiqueta asociada a los datos analíticos del mensaje. |
WebpushConfig
Representación JSON |
---|
{
"headers": {
string: string,
...
},
"data": {
string: string,
...
},
"notification": {
object
},
"fcm_options": {
object ( |
Campos | |
---|---|
headers | Cabeceras HTTP definidas en el protocolo webpush. Consulte el protocolo Webpush para conocer los encabezados admitidos, por ejemplo, "TTL": "15". Un objeto que contiene una lista de |
data | Carga útil de clave/valor arbitrario. Si está presente, anulará Un objeto que contiene una lista de |
notification | Opciones de notificación web como un objeto JSON. Admite las propiedades de la instancia de notificación como se define en la API de notificación web . Si están presentes, los campos "título" y "cuerpo" anulan |
fcm_options | Opciones para funciones proporcionadas por FCM SDK for Web. |
WebpushFcmOpciones
Opciones para funciones proporcionadas por FCM SDK for Web.
Representación JSON |
---|
{ "link": string, "analytics_label": string } |
Campos | |
---|---|
link | El enlace que se abre cuando el usuario hace clic en la notificación. Para todos los valores de URL, se requiere HTTPS. |
analytics_label | Etiqueta asociada a los datos analíticos del mensaje. |
ApnsConfig
Opciones específicas del servicio de notificaciones push de Apple .
Representación JSON |
---|
{
"headers": {
string: string,
...
},
"payload": {
object
},
"fcm_options": {
object ( |
Campos | |
---|---|
headers | Encabezados de solicitud HTTP definidos en el Servicio de notificaciones push de Apple. Consulte los encabezados de solicitud de APN para conocer los encabezados admitidos, como El backend establece un valor predeterminado para Un objeto que contiene una lista de |
payload | Carga útil de APN como un objeto JSON, incluido el diccionario |
fcm_options | Opciones para funciones proporcionadas por FCM SDK para iOS. |
ApnsFcmOpciones
Opciones para funciones proporcionadas por FCM SDK para iOS.
Representación JSON |
---|
{ "analytics_label": string, "image": string } |
Campos | |
---|---|
analytics_label | Etiqueta asociada a los datos analíticos del mensaje. |
image | Contiene la URL de una imagen que se va a mostrar en una notificación. Si está presente, anulará |
FcmOpciones
Opciones independientes de la plataforma para funciones proporcionadas por los SDK de FCM.
Representación JSON |
---|
{ "analytics_label": string } |
Campos | |
---|---|
analytics_label | Etiqueta asociada a los datos analíticos del mensaje. |
Métodos | |
---|---|
| Envíe un mensaje al objetivo especificado (un token de registro, tema o condición). |
Recurso: Mensaje
Mensaje para enviar por Firebase Cloud Messaging Service.
Representación JSON |
---|
{ "name": string, "data": { string: string, ... }, "notification": { object ( |
Campos | |
---|---|
name | Solo salida. El identificador del mensaje enviado, en el formato de |
data | Solo entrada. Carga útil de clave/valor arbitraria, que debe estar codificada en UTF-8. La clave no debe ser una palabra reservada ("from", "message_type" o cualquier palabra que comience con "google" o "gcm"). Al enviar cargas útiles que contienen solo campos de datos a dispositivos iOS, solo se permite la prioridad normal ( Un objeto que contiene una lista de |
notification | Solo entrada. Plantilla de notificación básica para usar en todas las plataformas. |
android | Solo entrada. Opciones específicas de Android para mensajes enviados a través del servidor de conexión FCM . |
webpush | Solo entrada. Opciones de protocolo Webpush . |
apns | Solo entrada. Opciones específicas del servicio de notificaciones push de Apple . |
fcm_options | Solo entrada. Plantilla para las opciones de características del SDK de FCM para usar en todas las plataformas. |
target de campo de unión. Requerido. Solo entrada. Destino al que enviar un mensaje. El target solo puede ser uno de los siguientes: | |
token | Token de registro para enviar un mensaje. |
topic | Nombre del tema al que enviar un mensaje, por ejemplo, "clima". Nota: no se debe proporcionar el prefijo "/temas/". |
condition | Condición para enviar un mensaje, por ejemplo, "'foo' en temas && 'bar' en temas". |
Notificación
Plantilla de notificación básica para usar en todas las plataformas.
Representación JSON |
---|
{ "title": string, "body": string, "image": string } |
Campos | |
---|---|
title | El título de la notificación. |
body | El texto del cuerpo de la notificación. |
image | Contiene la URL de una imagen que se descargará en el dispositivo y se mostrará en una notificación. JPEG, PNG, BMP tienen soporte completo en todas las plataformas. El GIF animado y el video solo funcionan en iOS. WebP y HEIF tienen diferentes niveles de compatibilidad entre plataformas y versiones de plataformas. Android tiene un límite de tamaño de imagen de 1 MB. Uso de cuotas e implicaciones/costos para alojar imágenes en Firebase Storage: https://firebase.google.com/pricing |
Configuración de Android
Opciones específicas de Android para mensajes enviados a través del servidor de conexión FCM .
Representación JSON |
---|
{ "collapse_key": string, "priority": enum ( |
Campos | |
---|---|
collapse_key | Un identificador de un grupo de mensajes que se puede colapsar, de modo que solo se envíe el último mensaje cuando se pueda reanudar la entrega. Se permite un máximo de 4 claves de contracción diferentes en un momento dado. |
priority | Prioridad de mensajes. Puede tomar valores "normales" y "altos". Para obtener más información, consulte Establecer la prioridad de un mensaje . |
ttl | Cuánto tiempo (en segundos) se debe mantener el mensaje en el almacenamiento de FCM si el dispositivo está fuera de línea. El tiempo máximo de vida admitido es de 4 semanas y el valor predeterminado es de 4 semanas si no se establece. Establézcalo en 0 si desea enviar el mensaje de inmediato. En formato JSON, el tipo Duración se codifica como una cadena en lugar de un objeto, donde la cadena termina con el sufijo "s" (que indica segundos) y está precedida por la cantidad de segundos, con nanosegundos expresados como fracciones de segundo. Por ejemplo, 3 segundos con 0 nanosegundos deben codificarse en formato JSON como "3s", mientras que 3 segundos y 1 nanosegundo deben expresarse en formato JSON como "3.000000001s". El ttl se redondeará al segundo más cercano. Una duración en segundos con hasta nueve dígitos fraccionarios, terminando en ' |
restricted_package_name | Nombre del paquete de la aplicación donde debe coincidir el token de registro para recibir el mensaje. |
data | Carga útil de clave/valor arbitraria. Si está presente, anulará Un objeto que contiene una lista de |
notification | Notificación para enviar a dispositivos Android. |
fcm_options | Opciones para funciones proporcionadas por FCM SDK para Android. |
direct_boot_ok | Si se establece en verdadero, se permitirá que los mensajes se entreguen a la aplicación mientras el dispositivo esté en modo de inicio directo. Consulte Admite el modo de arranque directo . |
AndroidMessagePriority
Prioridad de un mensaje para enviar a dispositivos Android. Tenga en cuenta que esta prioridad es un concepto de FCM que controla cuándo se entrega el mensaje. Consulte las guías de FCM . Además, puede determinar la prioridad de visualización de notificaciones en dispositivos Android específicos mediante AndroidNotification.NotificationPriority .
Enumeraciones | |
---|---|
NORMAL | Prioridad predeterminada para mensajes de datos. Los mensajes de prioridad normal no abrirán conexiones de red en un dispositivo inactivo y es posible que su entrega se retrase para conservar la batería. Para mensajes menos sensibles al tiempo, como notificaciones de correo electrónico nuevo u otros datos para sincronizar, elija la prioridad de entrega normal. |
HIGH | Prioridad predeterminada para los mensajes de notificación. FCM intenta entregar mensajes de alta prioridad de inmediato, lo que permite que el servicio de FCM active un dispositivo inactivo cuando sea posible y abra una conexión de red a su servidor de aplicaciones. Las aplicaciones con alertas de mensajería instantánea, chat o llamadas de voz, por ejemplo, generalmente necesitan abrir una conexión de red y asegurarse de que FCM entregue el mensaje al dispositivo sin demora. Establezca una prioridad alta si el mensaje es urgente y requiere la interacción inmediata del usuario, pero tenga en cuenta que establecer sus mensajes en alta prioridad contribuye más al agotamiento de la batería en comparación con los mensajes de prioridad normal. |
AndroidNotificación
Notificación para enviar a dispositivos Android.
Representación 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 | El título de la notificación. Si está presente, anulará |
body | El texto del cuerpo de la notificación. Si está presente, anulará |
icon | El icono de la notificación. Establece el ícono de notificación en myicon para myicon de recurso dibujable. Si no envía esta clave en la solicitud, FCM muestra el ícono del iniciador especificado en el manifiesto de su aplicación. |
color | El color del icono de la notificación, expresado en formato #rrggbb. |
sound | El sonido que se reproducirá cuando el dispositivo reciba la notificación. Admite "predeterminado" o el nombre de archivo de un recurso de sonido incluido en la aplicación. Los archivos de sonido deben residir en /res/raw/. |
tag | Identificador utilizado para reemplazar las notificaciones existentes en el cajón de notificaciones. Si no se especifica, cada solicitud crea una nueva notificación. Si se especifica y ya se muestra una notificación con la misma etiqueta, la nueva notificación reemplaza a la existente en el cajón de notificaciones. |
click_action | La acción asociada a un clic de usuario en la notificación. Si se especifica, se inicia una actividad con un filtro de intención coincidente cuando un usuario hace clic en la notificación. |
body_loc_key | La clave de la cadena del cuerpo en los recursos de cadena de la aplicación que se usará para localizar el texto del cuerpo en la localización actual del usuario. Consulte Recursos de cadenas para obtener más información. |
body_loc_args[] | Valores de cadena variables que se usarán en lugar de los especificadores de formato en body_loc_key para localizar el texto del cuerpo en la ubicación actual del usuario. Consulte Formato y estilo para obtener más información. |
title_loc_key | La clave de la cadena de título en los recursos de cadena de la aplicación que se usará para localizar el texto del título en la localización actual del usuario. Consulte Recursos de cadenas para obtener más información. |
title_loc_args[] | Valores de cadena variables que se utilizarán en lugar de los especificadores de formato en title_loc_key para localizar el texto del título en la localización actual del usuario. Consulte Formato y estilo para obtener más información. |
channel_id | La identificación del canal de notificación (nuevo en Android O). La aplicación debe crear un canal con este ID de canal antes de recibir cualquier notificación con este ID de canal. Si no envía este ID de canal en la solicitud, o si la aplicación aún no ha creado el ID de canal proporcionado, FCM usa el ID de canal especificado en el manifiesto de la aplicación. |
ticker | Establece el texto del "ticker", que se envía a los servicios de accesibilidad. Antes del nivel de API 21 ( |
sticky | Cuando se establece en falso o no se establece, la notificación se descarta automáticamente cuando el usuario hace clic en ella en el panel. Cuando se establece en verdadero, la notificación persiste incluso cuando el usuario hace clic en ella. |
event_time | Establezca la hora en que ocurrió el evento en la notificación. Las notificaciones en el panel se ordenan por hora. Un punto en el tiempo se representa usando protobuf.Timestamp . Una marca de tiempo en formato RFC3339 UTC "Zulu", con resolución de nanosegundos y hasta nueve dígitos fraccionarios. Ejemplos: |
local_only | Establezca si esta notificación es relevante o no solo para el dispositivo actual. Algunas notificaciones se pueden vincular a otros dispositivos para visualización remota, como un reloj Wear OS. Esta sugerencia se puede configurar para recomendar que esta notificación no se puentee. Consulte las guías de Wear OS |
notification_priority | Establezca la prioridad relativa para esta notificación. La prioridad es una indicación de la cantidad de atención del usuario que debe consumir esta notificación. Las notificaciones de baja prioridad pueden ocultarse al usuario en ciertas situaciones, mientras que el usuario puede ser interrumpido por una notificación de mayor prioridad. El efecto de establecer las mismas prioridades puede diferir ligeramente en diferentes plataformas. Tenga en cuenta que esta prioridad difiere de |
default_sound | Si se establece en verdadero, use el sonido predeterminado del marco de trabajo de Android para la notificación. Los valores predeterminados se especifican en config.xml . |
default_vibrate_timings | Si se establece en verdadero, use el patrón de vibración predeterminado del marco de trabajo de Android para la notificación. Los valores predeterminados se especifican en config.xml . Si |
default_light_settings | Si se establece en verdadero, use la configuración de luz LED predeterminada del marco de trabajo de Android para la notificación. Los valores predeterminados se especifican en config.xml . Si |
vibrate_timings[] | Configure el patrón de vibración a utilizar. Pase una matriz de protobuf . Duración para encender o apagar el vibrador. El primer valor indica la Una duración en segundos con hasta nueve dígitos fraccionarios, terminando en ' |
visibility | Configure la Notificación.visibilidad de la notificación. |
notification_count | Establece el número de elementos que representa esta notificación. Puede mostrarse como un recuento de insignias para los lanzadores que admiten insignias. Consulte Insignia de notificación . Por ejemplo, esto podría ser útil si usa solo una notificación para representar varios mensajes nuevos, pero desea que el recuento aquí represente la cantidad total de mensajes nuevos. Si es cero o no se especifica, los sistemas que admiten la credencialización usan el valor predeterminado, que consiste en incrementar un número que se muestra en el menú de pulsación prolongada cada vez que llega una nueva notificación. |
light_settings | Configuraciones para controlar la velocidad de parpadeo del LED de la notificación y el color si el LED está disponible en el dispositivo. El tiempo total de parpadeo está controlado por el sistema operativo. |
image | Contiene la URL de una imagen que se va a mostrar en una notificación. Si está presente, anulará |
NotificaciónPrioridad
Niveles de prioridad de una notificación.
Enumeraciones | |
---|---|
PRIORITY_UNSPECIFIED | Si no se especifica la prioridad, la prioridad de notificación se establece en PRIORITY_DEFAULT . |
PRIORITY_MIN | Prioridad de notificación más baja. Es posible que las notificaciones con este PRIORITY_MIN no se muestren al usuario, excepto en circunstancias especiales, como registros de notificación detallados. |
PRIORITY_LOW | Menor prioridad de notificación. La interfaz de usuario puede optar por mostrar las notificaciones más pequeñas o en una posición diferente en la lista, en comparación con las notificaciones con PRIORITY_DEFAULT . |
PRIORITY_DEFAULT | Prioridad de notificación predeterminada. Si la aplicación no prioriza sus propias notificaciones, use este valor para todas las notificaciones. |
PRIORITY_HIGH | Mayor prioridad de notificación. Use esto para notificaciones o alertas más importantes. La interfaz de usuario puede optar por mostrar estas notificaciones más grandes o en una posición diferente en las listas de notificaciones, en comparación con las notificaciones con PRIORITY_DEFAULT . |
PRIORITY_MAX | Prioridad de notificación más alta. Úselo para los elementos más importantes de la aplicación que requieren la atención o entrada inmediata del usuario. |
Visibilidad
Diferentes niveles de visibilidad de una notificación.
Enumeraciones | |
---|---|
VISIBILITY_UNSPECIFIED | Si no se especifica, el valor predeterminado es Visibility.PRIVATE . |
PRIVATE | Muestre esta notificación en todas las pantallas de bloqueo, pero oculte información confidencial o privada en pantallas de bloqueo seguras. |
PUBLIC | Muestra esta notificación en su totalidad en todas las pantallas de bloqueo. |
SECRET | No revele ninguna parte de esta notificación en una pantalla de bloqueo segura. |
Ajustes de luz
Configuración para controlar el LED de notificación.
Representación JSON |
---|
{
"color": {
object ( |
Campos | |
---|---|
color | Requerido. Establezca el |
light_on_duration | Requerido. Junto con Una duración en segundos con hasta nueve dígitos fraccionarios, terminando en ' |
light_off_duration | Requerido. Junto con Una duración en segundos con hasta nueve dígitos fraccionarios, terminando en ' |
Color
Representa un color en el espacio de color RGBA. Esta representación está diseñada para simplificar la conversión a/desde representaciones de color en varios idiomas por encima de la compacidad. Por ejemplo, los campos de esta representación se pueden proporcionar de manera trivial al constructor de java.awt.Color
en Java; también se puede proporcionar de manera trivial al método +colorWithRed:green:blue:alpha
de UIColor en iOS; y, con solo un poco de trabajo, se puede formatear fácilmente en una cadena CSS rgba()
en JavaScript.
Esta página de referencia no contiene información sobre el espacio de color absoluto que debe usarse para interpretar el valor RGB (p. ej., sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). De forma predeterminada, las aplicaciones deben asumir el espacio de color sRGB.
Cuando es necesario decidir la igualdad de color, las implementaciones, a menos que se documente lo contrario, tratan dos colores como iguales si todos sus valores rojo, verde, azul y alfa difieren cada uno en un máximo de 1e-5.
Ejemplo (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();
}
// ...
Ejemplo (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;
}
// ...
Ejemplo (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('');
};
// ...
Representación JSON |
---|
{ "red": number, "green": number, "blue": number, "alpha": number } |
Campos | |
---|---|
red | La cantidad de rojo en el color como un valor en el intervalo [0, 1]. |
green | La cantidad de verde en el color como valor en el intervalo [0, 1]. |
blue | La cantidad de azul en el color como valor en el intervalo [0, 1]. |
alpha | La fracción de este color que debe aplicarse al píxel. Es decir, el color del píxel final está definido por la ecuación: This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0). |
AndroidFcmOptions
Options for features provided by the FCM SDK for Android.
JSON representation |
---|
{ "analytics_label": string } |
Fields | |
---|---|
analytics_label | Label associated with the message's analytics data. |
WebpushConfig
Webpush protocol options.
JSON representation |
---|
{
"headers": {
string: string,
...
},
"data": {
string: string,
...
},
"notification": {
object
},
"fcm_options": {
object ( |
Fields | |
---|---|
headers | HTTP headers defined in webpush protocol. Refer to Webpush protocol for supported headers, eg "TTL": "15". An object containing a list of |
data | Arbitrary key/value payload. If present, it will override An object containing a list of |
notification | Web Notification options as a JSON object. Supports Notification instance properties as defined in Web Notification API . If present, "title" and "body" fields override |
fcm_options | Options for features provided by the FCM SDK for Web. |
WebpushFcmOptions
Options for features provided by the FCM SDK for Web.
JSON representation |
---|
{ "link": string, "analytics_label": string } |
Fields | |
---|---|
link | The link to open when the user clicks on the notification. For all URL values, HTTPS is required. |
analytics_label | Label associated with the message's analytics data. |
ApnsConfig
Apple Push Notification Service specific options.
JSON representation |
---|
{
"headers": {
string: string,
...
},
"payload": {
object
},
"fcm_options": {
object ( |
Fields | |
---|---|
headers | HTTP request headers defined in Apple Push Notification Service. Refer to APNs request headers for supported headers such as The backend sets a default value for An object containing a list of |
payload | APNs payload as a JSON object, including both |
fcm_options | Options for features provided by the FCM SDK for iOS. |
ApnsFcmOptions
Options for features provided by the FCM SDK for iOS.
JSON representation |
---|
{ "analytics_label": string, "image": string } |
Fields | |
---|---|
analytics_label | Label associated with the message's analytics data. |
image | Contains the URL of an image that is going to be displayed in a notification. If present, it will override |
FcmOptions
Platform independent options for features provided by the FCM SDKs.
JSON representation |
---|
{ "analytics_label": string } |
Fields | |
---|---|
analytics_label | Label associated with the message's analytics data. |
Methods | |
---|---|
| Send a message to specified target (a registration token, topic or condition). |