claudeamadu / firebase
该包的最新版本(v1.0.2)没有可用的许可证信息。
针对PHP项目的简化Firebase类库 简洁的代码,便于在项目中使用,无需烦恼
v1.0.2
2024-05-28 00:16 UTC
Requires
- php: >=8.0
README
针对PHP项目的简化Firebase类库 简洁的代码,便于在项目中使用,无需烦恼
安装
composer require claudeamadu/firebase
列出类
FirebaseAuth FirebaseUser FirebaseFirestore FirestoreDB Query FieldFilter CompositeFilter UnaryFilter PathBuilder FirebaseCloudMessaging
自动加载
require 'vendor/autoload.php';
Firebase身份验证
匿名登录
$apiKey = 'AIzaSyxxxxxxxxxxxxxxxxxxxx'; $auth = new FirebaseAuth($apiKey); $token = null; if ($auth->signInAnonymously()) { $token = $auth->getAccessToken() }
使用邮箱和密码登录
$apiKey = 'AIzaSyxxxxxxxxxxxxxxxxxxxx'; $auth = new FirebaseAuth($apiKey); $token = null; $email = $_REQUEST['email']; $password = $_REQUEST['password']; if ($auth->signIn($email, $password)) { $token = $auth->getAccessToken() }
使用邮箱和密码注册
$apiKey = 'AIzaSyxxxxxxxxxxxxxxxxxxxx'; $auth = new FirebaseAuth($apiKey); $token = null; $email = $_REQUEST['email']; $password = $_REQUEST['password']; if ($auth->signUp($email, $password)) { $token = $auth->getAccessToken() }
Firebase用户
$user = $auth->currentUser();
Firestore
设置
$Database = '(default)'; $ProjectID = 'xxxxxxxxxxx'; // Create an instance of FirebaseFirestore $firestore = new FirebaseFirestore($token, $Database, $ProjectID); $db = $firestore->db;
获取文档
$documentPath = 'users/xxxxxxx@ttu.edu.gh'; $document = $db->getDocument('users', $documentPath); if ($document !== null) { echo $document; }
更新文档
$data = [ "user_name" => "WOW 2", "user_id" => "22195", ]; $db->updateDocument('users','22195',$data);
获取集合
$collectionPath = 'users'; // Replace with your collection path $collection = $db->getCollection($collectionPath); if ($collection !== null) { echo $collection; }
运行查询
$fieldFilter = new FieldFilter(); $compositeFilter = new CompositeFilter(); $fieldFilter->equalTo('user_name', 'WOW 2'); $query = $db->query; $query->from('users')->where2($fieldFilter); echo $query->run();
云消息
<?php // Usage: $credentialsPath = 'serviceAccountCredentials.json'; $topics = 'ios_general'; $title = 'Title of Notification'; $body = 'Body of Notification'; $fcm = new FirebaseCloudMessaging($credentialsPath); $accessToken = $fcm->getAccessToken(); //echo $accessToken; $response = $fcm->sendFCMNotificationToTopic($accessToken, $topics, $title, $body); echo $response;