错误 Firebase Cloud Functions Typescript Payload contains an invalid value for the "notification.
Posted
技术标签:
【中文标题】错误 Firebase Cloud Functions Typescript Payload contains an invalid value for the "notification.loc-args" property【英文标题】:Error Firebase Cloud Functions Typescript Payload contains an invalid value for the "notification.loc-args" property 【发布时间】:2018-10-25 03:26:54 【问题描述】:从我的 Firebase 函数的 Firebase 云函数日志中收到以下错误消息。我正在尝试使用具有动态值的本地化创建远程推送通知有效负载。
错误:消息负载包含“notification.loc-args”属性的无效值。值必须是字符串。
有效载荷的 TypeScript 代码
var values : String[] = [];
values.push('Johnny Appleseed');
const payload =
notification:
'title-loc-key': 'INVITE_PUSH_TITLE',
'loc-key': 'INVITE_PUSH_BODY',
'loc-args': values,
'type': 'Invite',
'fromName': name,
'userId': uid,
;
'loc-args' 属性已包含字符串数组。这里有什么问题?
以下示例显示了它的设想,基于Apple documentation
ios 本地化参数
"GAME_PLAY_REQUEST_FORMAT" = "%@ and %@ have invited you to play Monopoly";
有效载荷
"aps" :
"alert" :
"loc-key" : "GAME_PLAY_REQUEST_FORMAT",
"loc-args" : [ "Jenna", "Frank"]
【问题讨论】:
错误告诉你值必须是字符串。它们不能是字符串数组。此限制由 FCM 而非 Apple 强制执行。使用 FCM 发送消息时必须遵守 FCM 规则。 【参考方案1】:FCM 的以下负载解决了我的问题。
const payload =
notification:
title: 'You have a new team request!',
body: `$name sent team request.!`,
'title_loc_key': 'TEAM_INVITE_PUSH_TITLE',
'body_loc_key': 'TEAM_INVITE_PUSH_BODY',
'body_loc_args': `["$name"]`
,
data:
type: 'teamInvite',
fromName: name,
userId: uid
;
【讨论】:
以上是关于错误 Firebase Cloud Functions Typescript Payload contains an invalid value for the "notification.的主要内容,如果未能解决你的问题,请参考以下文章
如何处理 Firebase Cloud Functions 中的错误 JSON?
Firebase Cloud Functions 部署错误 - 超出配额
Firebase Cloud Function 部署 tslint 错误