我们可以在通知中发送Firebase ServerValue时间戳吗?

时间:2016-12-30 10:36:38

标签: android firebase firebase-realtime-database firebase-cloud-messaging

我想知道是否可以在通过REST API发送的FCM通知中发送Firebase ServerValue时间戳。我知道这些值会在实时数据库到达时自动填充,通过FCM发送API发送时会发生同样的情况吗?

3 个答案:

答案 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 的数据部分。