适用于申请通知

时间:2018-08-17 15:40:52

标签: android mysql firebase push-notification notifications

我正在创建一个出租车应用程序,其中有一个驱动程序和一个用户应用程序。当用户发布乘车请求时,必须通知所有驾驶员该请求可用(推送通知)。我的本机代码如何知道何时发送通知?m

我不希望应用程序消耗大量电池和数据,因此我无法每分钟检查我的MySQL数据库。我使用 Firebase 寻找解决方案,但发现它们为Web到android的通知提供服务。我尚未编写任何与此相关的代码。

请提出实现此目标的方法。谷歌搜索没有帮助。如果可能,请附加代码。

预先感谢

1 个答案:

答案 0 :(得分:1)

因此firebase并不难使用,这是您的PHP Api的代码

// function makes curl request to firebase servers
private function sendPushNotification($fields) {

    require_once __DIR__ . '/config.php';

    // Set POST variables
    $url = 'https://fcm.googleapis.com/fcm/send';

    $headers = array(
        'Authorization: key=' . FIREBASE_API_KEY,
        'Content-Type: application/json'
    );
    // Open connection
    $ch = curl_init();

    // Set the url, number of POST vars, POST data
    curl_setopt($ch, CURLOPT_URL, $url);

    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

    // Disabling SSL Certificate support temporarly
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

    curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($fields));

    // Execute post
    $result = curl_exec($ch);
    if ($result === FALSE) {
        die('Curl failed: ' . curl_error($ch));
    }

    // Close connection
    curl_close($ch);

    return $result;
}

现在 config.php 具有的是

<?php

// Firebase API Key
define('FIREBASE_API_KEY', '///lGrYwgBC8iz5reyx4qPUB7ByXX8MwC7Vcs8u...');
     ?>

您可以在{strong> Project Settings-> Cloud Messaging-> Server Key

下从Firebase Console获取此密钥。

现在是一个简单的发送推送通知的功能

public function send($to, $message) {
    $fields = array(
        'to' => $to,
        'data' => $message,
    );
    return $this->sendPushNotification($fields);
}

$to中将出现您要发送通知的人的通知ID。这是link

希望这对您有帮助