与FCM集成哪一部分?前端或后端

时间:2019-10-09 06:28:21

标签: reactjs laravel react-native

因此,让我们直接讨论一下。我制作了一个本地应用程序,在其中我将laravel REST API用作后端,将reactjs用作前端。除推送通知外,我已完成所有功能。

  • 现在我不知道fcm是如何工作的,我必须集成哪一部分? 如果我必须集成laravel或reactjs,该怎么办?

我希望你们能回答我的问题,如果我的问题很傻,请原谅我。我是一个初学者,希望您能理解。预先感谢。

3 个答案:

答案 0 :(得分:0)

您可以使用软件包将FCM直接用于任何laravel项目。 laravel中有软件包可简化此操作。 看看吧。

Laravel-FCM-package

答案 1 :(得分:0)

您必须实现代码以在前端(ReactJs或React本机)中接收通知。该通知将从FCM服务器推送,请查看文档以了解How it works

或者,您可以直接阅读这篇中等文章:Implementing FCM in React Native

此外,如果这是一个网络应用程序,请关注此文章:FCM Integration in ReactJS

答案 2 :(得分:0)

这似乎是我的最后一项任务。因此,您必须使用Laravel或后端引擎发送Firebase云消息(fcm),并使用reactjs对其进行检索。

对于基于php的后端(Laravel / lumen /任何),您可以使用以下命令: https://firebase-php.readthedocs.io/en/latest/cloud-messaging.html

或者,如果您需要更简单的方法,只需使用curl()函数。这是我对fcm的简单功能:

public function sendCloudMessageTopic($title, $message, $topics, $detail = null)
    {
        try {

            $serverApiKey = "YOUR APP FIREBASE KEY";
            $header       = [
                "Authorization: Key=" . $serverApiKey,
                "Content-Type: Application/json",
            ];

            $notification = [
                "title" => $title,
                "body" => $message,
            ];

            $data = [
                "notification" => $notification,
                "detail" => $detail,
            ];

            $payload = ["notification" => $notification, "data" => $data, "to" => $topics];
            $curl    = curl_init();

            curl_setopt_array($curl, array(
                CURLOPT_URL => "https://fcm.googleapis.com/fcm/send",
                CURLOPT_RETURNTRANSFER => true,
                CURLOPT_ENCODING => "",
                CURLOPT_MAXREDIRS => 10,
                CURLOPT_TIMEOUT => 30,
                CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
                CURLOPT_CUSTOMREQUEST => "POST",
                CURLOPT_POSTFIELDS => json_encode($payload),
                CURLOPT_HTTPHEADER => $header,
            ));

            $response = curl_exec($curl);
            $failed   = curl_error($curl);
            curl_close($curl);

            if ($failed == TRUE)
                throw new \Exception("CURL Action Failed to send firebase cloud message");

            $result = json_decode($response);

            if (!isset($result->message_id))
                throw new \Exception("Failed to send firebase cloud message");

            return [
                'status' => 1,
                'message' => "successfully sending firebase cloud message"
            ];

        } catch
        (\Exception $exception) {
            return [
                'status' => 0,
                'message' => "Failed to send firebase cloud message"
            ];
        }
    }

我从未尝试过将其用于检索它,但是您可以看一下这篇文章:

https://codeburst.io/how-to-add-push-notifications-on-firebase-cloud-messaging-to-react-web-app-de7c6f04c920

谢谢