我想知道是否可以在通过REST API发送的FCM通知中发送Firebase ServerValue时间戳。我知道这些值会在实时数据库到达时自动填充,通过FCM发送API发送时会发生同样的情况吗?
答案 0 :(得分:2)
是的,您可以查看以下代码,看看我如何在数据对象中添加时间戳
{
"to" : "sdfdfssde1w6hEbZn-8:APAb2JewYCIiApsMu5JfI5Ak...",
"notification": {
"body": "This is test msg",
"title": "title here",
"icon": "appicon"
},
"data" : {
"name" : "lenovo k4",
"product_id" : "122",
"final_price" : "12500",
"timestamp" : "1483095084"
}
}
答案 1 :(得分:2)
无法将服务器端时间戳注入FCM消息。您必须从您自己的客户端/发送消息的应用服务器传入值。
您可以通过侦听客户端/应用服务器的时钟偏差来估算Firebase数据库将使用的值。 Firebase documentation就是这样的例子:
var offsetRef = firebase.database().ref(".info/serverTimeOffset"); offsetRef.on("value", function(snap) { var offset = snap.val(); var estimatedServerTimeMs = new Date().getTime() + offset; });
答案 2 :(得分:0)
可以使用 firebase 'Timestamp' 的 now() 方法获取当前服务器时间戳。 ref
const currentTimestamp = firebase.firestore.Timestamp.now(); //firebase timestamp format
然后将此值作为键值对传递给 FCM 的数据部分。