我丢弃了额外的捆绑包并找到了答案。
这些是我正在寻找的钥匙:
google.sent_time (long)
from (string)
google.message_id (String)
collapse_key (String)
除此之外,您可以直接使用用于自定义数据的键(在发送消息时)。
当我们从 firebase 控制台触发消息时,我认为只有我们发送的自定义数据才能从 extra 的意图中接收。标题、消息等我无法从这里检索
更新
正如其他人所观察到的,我认为不可能从额外意图中提取标题和消息。我通过使用单独的密钥再次传递它们找到了一种解决方法。一些如何从额外意图中提取数据的代码是
Bundle Extras = getIntent().getExtras();
public static String Content_KEY = "NotificationContent"; //alterative to message
String Content = Extras.getString(Content_KEY);
我不记得确切的名字,但有两种发送消息的模式。
第一种模式是 firebase 控制台使用的模式。它直接发送消息
- 如果在后台,则发送到系统托盘(作为通知)
- 如果在前台,则发送到 onMessageReceived。
你必须同时处理这两个问题,如果我在 onMessageReceived 中获得通知,我最终会从我的应用程序本身向系统托盘发送通知,以便我可以从处理主要活动中的额外意图的相同代码管理它们。
如果通知丢失,您也会丢失数据。
- 直接从服务器或应用程序向 firebase 服务器发送消息。我认为消息将始终发送到 onMessageReceived,从而将再次发送消息的所有痛苦保存为单独的密钥以及如果删除通知会丢失数据的问题。但是在这里您必须设置自己的通知应用程序/服务器