¿Cuál es la syntax correcta para enviar Firebase Cloud Messaging (FCM) a múltiples temas a través de una condición?

Simplemente quiero usar las funciones de la nube de Google para enviar notificaciones a los dispositivos que se suscriben a una combinación de temas.

La documentación dice:

“‘TopicA’ en temas && (‘TopicB’ en temas || ‘TopicC’ en temas)”

Lo que traté de hacer es:

var topicsConditions = `'${type}' in topics && ('${area}' in topics || '${city}' in topics)`; // Send a message to devices subscribed to the provided topic. admin.messaging().sendToCondition(topicsConditions, notificationPayload) .then(function(response) { // See the MessagingTopicResponse reference documentation for the // contents of response. console.log("Successfully sent message:", response); }) .catch(function(error) { console.log("Error sending message:", error); }); 

Pero sigo recibiendo este error:

Error al enviar el mensaje: {Error: se proporcionó un argumento no válido. Respuesta del servidor sin formato: campo “condición” no válida: solo se admiten las condiciones de los “temas”. Código de estado: 400. en FirebaseMessagingError.Error (nativo) en FirebaseMessagingError.FirebaseError [como constructor] (/user_code/node_modules/firebase-adminperca de las cosas de las personas / parques / parques / parques / parques.js:39:28) (/ user_code/node_modules/firebase-admin/lib/utils/error.js:85:28) en el nuevo FirebaseMessagingError (/user_code/node_modules/firebase-admin/lib/utils/error.js:241:16) en / user_code /node_modules/firebase-admin/lib/messaging/messaging-api-request.js:115:23 at process._tickDomainCallback (internal / process / next_tick.js: 135: 7) errorInfo: {code: ‘messaging / invalid-argument ‘, mensaje:’ Se proporcionó un argumento no válido. Respuesta del servidor sin formato: campo “condición” no válida: solo se admiten \ ‘temas \’ condiciones \ n “. Código de estado: 400. ‘ }, prefijo de código: ‘mensajería’}

¿Alguien puede dirigirme a la syntax correcta?

Editar: La salida de registro de los temas es:

Condiciones del tema = ‘MyType +’ en temas && (‘Giza, Egipto’ en temas || ‘القاهرة الكبرى’ en temas)

Los caracteres que pueden usarse en el nombre de un tema están limitados a:

  • letras minúsculas de la A a la z
  • letras mayúsculas de la A a la Z
  • dígitos del 0 al 9
  • personajes - _ . ~ %

Los nombres de sus temas contienen caracteres no válidos + ,,, espacio y árabe.

Más detalles se encuentran en la documentación :

Los desarrolladores pueden elegir cualquier nombre de tema que coincida con la expresión regular: “[a-zA-Z0-9 -_. ~%] +”

Un ejemplo de una cadena de condición válida es:

 var topicsConditions = "'Aswan' in topics && ('Giza' in topics || 'Cairo' in topics)"; 

admin.messaging().sendToCondition() exitosamente esta cadena en una llamada a admin.messaging().sendToCondition()