Ali*_*eir 3 android firebase firebase-cloud-messaging
Firebase提供的示例是:
您的 Android 应用程序可以使用以下命令发送上游消息
FirebaseMessaging.send:Run Code Online (Sandbox Code Playgroud)FirebaseMessaging fm = FirebaseMessaging.getInstance(); fm.send(new RemoteMessage.Builder(SENDER_ID + "@gcm.googleapis.com") .setMessageId(Integer.toString(msgId.incrementAndGet())) .addData("my_message", "Hello World") .addData("my_action","SAY_HELLO") .build());
他们解释了消息 ID 是什么:
对于每个发件人 ID 来说,消息 ID 应该是唯一的。
然而,我并没有明白他们的确切意思。那么,每次我发送一条消息时,这个数字都会增加吗?是什么原因?我在哪里存储这个值?
他们也有方法addData(),但我不完全明白这是做什么的。对此方法的完整、详细的解释将被接受。
1:
消息 ID(顾名思义)是您从设备发送的消息的标识符,用于区分每条消息。他们还提到,每条消息对于每个发件人 ID 都应该是唯一的。
例如,您有 2 个发件人 ID,每个发件人 ID 都可以有一个值为 的消息 ID 1,但该消息 ID 不应在同一发件人 ID 中重复。
从技术上讲,您的实现是在发送消息之前增加消息 ID 的值。它在简单上游消息的示例代码中不可见,但用于msgId变量的数据类型是如将上游消息发送到设备组的AtomicInteger文档中所示的:
FirebaseMessaging fm = FirebaseMessaging.getInstance();
String to = aUniqueKey; // the notification key
AtomicInteger msgId = new AtomicInteger();
fm.send(new RemoteMessage.Builder(to)
.setMessageId(msgId)
.addData("hello", "world")
.build());
Run Code Online (Sandbox Code Playgroud)
确保incrementAndGet()AtomicInteger 的值在使用前递增,使其每次调用时都不同(唯一)。(有关使用 AtomicInteger 的更多想法,请参阅这篇文章)
我不完全确定你将其存储在哪里。在我看来,由于该消息旨在发送到您的应用程序服务器,因此您应该在收到它后将其存储在那里。
2:
您可以在其中addData()包含要发送的消息的键值对。详细信息、内容或您打算发送到应用程序服务器的任何内容。
将其视为与下游消息传递的有效负载相同data。
| 归档时间: |
|
| 查看次数: |
8165 次 |
| 最近记录: |