我有一个php应用程序,从这个我需要上传图像到谷歌firebase storage
。我看到过写和读取实时数据库的代码片段,但找不到任何从php上传到firebase storage
的代码。
任何帮助都将非常感激。
Tismon Varghese
您可以从他们的官方文档开始存储文档和一个更容易在框架内使用的SDK您可以探索这两个以获取其他信息。先来看看我是怎么做的。我当时正在做一个小型旅行项目。
你必须安装这个包composer require kreait/firebase-php
然后阅读Package setup
中的安装步骤 $storage = app('firebase.storage'); // This is an instance of GoogleCloudStorageStorageClient from kreait/firebase-php library
$defaultBucket = $storage->getBucket();
$image = $request->file('image');
$name = (string) Str::uuid().".".$image->getClientOriginalExtension(); // use IlluminateSupportStr;
$pathName = $image->getPathName();
$file = fopen($pathName, 'r');
$object = $defaultBucket->upload($file, [
'name' => $name,
'predefinedAcl' => 'publicRead'
]);
$image_url = 'https://storage.googleapis.com/'.env('FIREBASE_PROJECT_ID').'.appspot.com/'.$name;
我们建议使用Google API Client PHP库,因为Firebase Storage是由Google Cloud Storage支持的。Firebase Storage不提供前端代码的PHP客户端。
来自GCS PHP示例代码:
// composer autoloading
require_once __DIR__ . '/vendor/autoload.php';
// grab the first argument
if (empty($argv[1])) {
die("usage: php listBuckets [project_id]n");
}
$projectId = $argv[1];
// Authenticate your API Client
$client = new Google_Client();
$client->useApplicationDefaultCredentials();
$client->addScope(Google_Service_Storage::DEVSTORAGE_FULL_CONTROL);
$storage = new Google_Service_Storage($client);
/**
* Google Cloud Storage API request to retrieve the list of buckets in your project.
*/
$buckets = $storage->buckets->listBuckets($projectId);
foreach ($buckets['items'] as $bucket) {
printf("%sn", $bucket->getName());
}