HEX
Server: Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips PHP/7.4.30
System: Linux iZj6c1151k3ad370bosnmsZ 3.10.0-1160.76.1.el7.x86_64 #1 SMP Wed Aug 10 16:21:17 UTC 2022 x86_64
User: root (0)
PHP: 7.4.30
Disabled: NONE
Upload Files
File: /var/www/html/inventory.breadsecret.com/class/Controller/firebase.php
<?php
namespace Controller;

use Kreait\Firebase\Factory;
use Kreait\Firebase\Messaging\CloudMessage;
use Kreait\Firebase\Messaging\Notification;

class firebase {
    private $factory;
	
	public function __construct() {
		$this->factory = (new Factory)->withServiceAccount('shorten-url-4bcf9-cb32f4f56a14.json');
	}

	public function verifyUserToken($firebaseIdToken) {
		$auth = $this->factory->createAuth();
		try {
			$verifiedIdToken = $auth->verifyIdToken($firebaseIdToken);
		} catch (\Throwable $e) {
			throw $e;
			return null;
		}
		return $verifiedIdToken->claims()->get('sub');;
	}

	public function getUserRecord($firebaseUID) {
		$auth = $this->factory->createAuth();
		try {
			$userInfo = $auth->getUser($firebaseUID);
		} catch (\Throwable $e) {
			throw $e;
			return null;
		}
		return $userInfo;
	}

    public function sendDeviceMessage($devToken, $title, $content, $data = []) {
		$messaging = $this->factory->createMessaging();		
		$message = CloudMessage::withTarget('token', $devToken)
			->withNotification(Notification::create($title, $content)) // optional
			->withData($data) // optional
		;

		$ret = $messaging->send($message);
		//print_r($ret);
		return $ret;
	}

    public function sendTopicMessage($topic, $title, $content, $data = []) {
		$messaging = $this->factory->createMessaging();		
		$message = CloudMessage::withTarget('topic', $topic)
			->withNotification(Notification::create($title, $content)) // optional
			->withData($data) // optional
		;

		$ret = $messaging->send($message);
		//print_r($ret);
		return $ret;
	}

    public function createDynamicLink($url) {
	$dynamicLinks = $this->factory->createDynamicLinksService("https://bizwave.page.link");
	$link = $dynamicLinks->createShortLink($url);
	return $link;
    }

    public function getLinkStatistics($url, $duration = 7) {
	$dynamicLinks = $this->factory->createDynamicLinksService("https://bizwave.page.link");
	$stat = $dynamicLinks->getStatistics($url, $duration);
	return $stat;
    }
}