我可以使用FCM云将数据从数据库发送到我的Android应用程序吗

时间:2018-10-25 15:31:48

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

我有一个应用程序,允许用户撰写文章并评论文章。我想使用Firebase Cloud FCM在帖子有新评论时发送帖子作者通知。我将使用FCM云向用户作者显示通知。但是之后,我需要在用户单击此通知时,打开一个活动并显示该帖子,并在其中显示评论。为此,我需要向用户发送数据库中的发布子项,以便在单击通知时将其打开。我的问题是我不知道是否可以从数据库发送数据?如果可以做到,我需要知道如何做吗?

1 个答案:

答案 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中获取该帖子的相应数据。