我有一个应用程序,允许用户撰写文章并评论文章。我想使用Firebase Cloud FCM在帖子有新评论时发送帖子作者通知。我将使用FCM云向用户作者显示通知。但是之后,我需要在用户单击此通知时,打开一个活动并显示该帖子,并在其中显示评论。为此,我需要向用户发送数据库中的发布子项,以便在单击通知时将其打开。我的问题是我不知道是否可以从数据库发送数据?如果可以做到,我需要知道如何做吗?
答案 0 :(得分:2)
我假设您正在使用云功能使用令牌将通知发送到用户的设备。 您可以将数据发送到收件人活动,如下所示。在这里,您需要发送您的postID。 现在您的有效负载将如下所示:
const payload = {
notification: {
title: you_notification_title,
body: text,
icon : "ic_notification_small",
sound : "default",
click_action: "NEW_MESSAGE",
"content_available": "true",
badge : "1"
},
data: {
postID: "your_postID",
}
};
这里click_action
是关键。当用户单击通知时,将启动Android Manifest.xml中标记为“ NEW_MESSAGE”的活动。因此,为了在单击通知时启动活动,应在清单中定义它,如下所示:
<activity
android:name=".Your_Activity">
<intent-filter>
<action android:name="NEW_MESSAGE" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
现在,当您的用户单击通知时,他们将被带到Your_Activity
。
在您的Your_Activity
中,您可以像这样从通知中获取数据:
String postID= remoteMessage.getData().get(“postID”);
使用此postID,您需要从firebase中获取该帖子的相应数据。