android 通知负载中的 FCM,event_time
Posted
技术标签:
【中文标题】android 通知负载中的 FCM,event_time【英文标题】:FCM in android notification payload , event_time 【发布时间】:2020-04-20 22:19:48 【问题描述】:我想在我运行这个 http 函数 5 分钟后推送通知。从通知的 jsaon 中删除 event_time
我将收到现在有时间线的推送通知,但如果我硬编码 event_time
时间将显示自纪元时间以来的 50 年前,事件我将 999 放在这一年增加 2 年。我一点也不明白。然后在 google 和 firebase 中找到 Timestapm 格式,因此使用它,并且 android 在解析 json 有效负载时出错,说不能很好地处理某些内容。有任何想法格式化 Zulu RC399 时间格式吗?
pp.get('/sendCloudMessageReminderActivation', async (req, res) =>
const x = req.query.userUID;
const xstr = String(x);
const zxcv = admin.firestore().collection('user').doc(xstr);
const xoxo = await zxcv.get();
var today = new Date();
// today.setHours(today.getHours()+1);
today.setHours(today.getHours()+8);
// today.setFullYear(today.getFullYear()+50);
var xoxocode;
console.log(today+'saya saya sebelum cagbge');
// today = ISODateString(today);
const timestamp = admin.firestore.Timestamp.fromDate(today);
console.log(timestamp.nanoseconds +'siniiiiiiiiiiiiiiiiiiiii');
if (xoxo!==null)
xoxocode= await xoxo.data().cloudMessagingToken;
const message =
notification:
title: 'your account is still in active state',
body: 'Tap here to check it out!'
,
android:
priority:'high',
// important : 'MAX',
notification:
notification_priority: "PRIORITY_MAX",
event_time: timestamp,// when ever i cahnge this event use ZULU RC339 format i still give my 50 year ago notification. i did my research but cant figure out how to do this ,
default_sound: true,
// notification_priority: PRIORITY_MAX
,
token: xoxocode
;
// res.status(200).send('authorized');
const respondfrommesage = admin.messaging().send(message);
console.log(respondfrommesage);
res.status(200).send('message send notification');
res.end();
);
【问题讨论】:
你解决问题了吗? 不,我没有,我取消了这个功能,因为它只是我的 FYP 项目,我的时间有限,但将来会使用这个 FMC 功能。 我向 Firebase 报告了这个问题,他们复制了它并计划修复它,但他们无法为此提供任何时间表。 【参考方案1】:Zulu
不是时间格式。这是time zone
。 Zulu 只是 UTC
的另一个名称。
据此article:
UTC 时间的另一个名称是“Zulu”或“Z 时间”。
现在,关于时间戳值。如果您正在创建 Date 对象并使用日期的 milliseconds
或 nanoseconds
属性,它将始终为您提供相应属性类型(磨机/纳米)的差异,
从您创建实例的那一刻起,starting time of UNIX 即为1 January 1970
。
截至1st Jan, 2020
,它一直是50 years
。因此,event_time
中的50
年份差异。
如果您有任何其他疑问,请告诉我。
【讨论】:
好吧,我对那个 Zulu 时区的错误,只是阅读它 Zulu 有 0000 时间格式,我使用马来西亚或新加坡的 0080 时间格式正确,但在 even_time 字段中,我也尝试过:event_time: “2020-01-01T23:00:00Z”,但仍然得到 19-01-1970,实际上 android 是如何计算的? 我在使用 python firebase admin 时遇到了同样的问题,并且还从 google playground 发送了通知。我认为这可能是一个 android 问题以上是关于android 通知负载中的 FCM,event_time的主要内容,如果未能解决你的问题,请参考以下文章