通过条件将Firebase Cloud Messaging(FCM)发送到多个主题的正确语法是什么



简单地我想使用Google云功能将通知发送到订阅主题组合的设备。

文档说:

"主题中的'topica'

我尝试做的是:

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);
  });

但我一直遇到此错误:

错误发送消息:{错误:提供了无效的参数。原始服务器响应:"无效"条件"字段:仅支持'主题'条件 "。状态代码:400。 在firbasemessagingerror.error(本地( 在firebasemessagingerror.firebaseerror [作为构造函数](/user_code/node_modules/firebase-admin/lib/lib/utils/error.js:39:28( 在firebasemessagingerror.prefixedfirebaseerror [作为构造函数](/user_code/node_modules/firebase-admin/lib/lib/utils/error.js:85:28( 在New Firebasemessagingerror(/USER_CODE/NODE_MODULES/FIREBASE-ADMIN/LIB/UTILS/ERROR.JS:241:16( at/user_code/node_modules/firebase-admin/lib/messaging/messaging-api-request.js:115:23 在process._tickdomaincallback(内部/process/next_tick.js:135:7( ERRORINFO: {代码:'消息传递/无效 - argument', 消息:'提供的参数无效。原始服务器响应:"无效"条件"字段"字段:仅支持'主题'条件 n。状态代码:400。},, codeprefix:'Messaging'}

有人可以将我引导到正确的语法?

编辑:主题的日志输出是:

主题条件='mytype '主题中的&&(主题中的'giza,埃及'

主题名称中可以使用的字符仅限于:

  • 小写字母 a to z
  • 大写字母 A to Z
  • Digits 09
  • 字符- _ . % CC_11

您的主题名称包含无效字符+,,Space和Arabic。

更多详细信息在文档中:

开发人员可以选择与常规的任何主题名称 表达式:" [a-za-z0-9 -_。〜%] "

有效条件字符串的一个示例是:

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

我在呼叫admin.messaging().sendToCondition()

中成功使用了此字符串

如果要与变量一起使用,则可以像这样使用

const condition = `'${OLDUSERS}' in topics || '${CURRENTLYBOOKED}' in topics`;

并在这种情况下使用发送方法。

相关内容

  • 没有找到相关文章

最新更新