Для PHP библиотек и других языков лучше и практичнее использовать переменные среды, вместо этого объявите путь ключа JSON и проект в коде
GOOGLE_CLOUD_PROJECT - name of the project
GOOGLE_APPLICATION_CREDENTIALS - Path to JSON file
Этот метод гарантирует совместимость код с некоторыми безсерверными продуктами GCP, такими как Cloud Functions и App Engine.
Кроме того, это хорошая практика, потому что если вы загружаете этот код в репозиторий, учетные данные не будут включены в ваш код
Чтобы объявить свои учетные данные в своем коде для клиента firestore, проверьте следующий код:
$db = new FirestoreClient([
'projectId' => $projectId,
'keyFilePath' => '/path/to/keyfile.json',
]);
Это не упомянуто в документации Firestore, но в исходном коде класса Firestoreclient появляется все параметры, которые вы можете использовать для инициализации клиента
@type string $apiEndpoint A hostname with optional port to use in
place of the service's default endpoint.
@type string $projectId The project ID from the Google Developer's
Console.
@type CacheItemPoolInterface $authCache A cache for storing access
tokens. **Defaults to** a simple in memory implementation.
@type array $authCacheOptions Cache configuration options.
@type callable $authHttpHandler A handler used to deliver Psr7
requests specifically for authentication.
@type callable $httpHandler A handler used to deliver Psr7 requests.
Only valid for requests sent over REST.
@type array $keyFile The contents of the service account credentials
.json file retrieved from the Google Developer's Console.
Ex: `json_decode(file_get_contents($path), true)`.
@type string $keyFilePath The full path to your service account
credentials .json file retrieved from the Google Developers
Console.
@type int $retries Number of retries for a failed request. **Defaults
to** `3`.
@type array $scopes Scopes to be used for the request.
@type bool $returnInt64AsObject If true, 64 bit integers will be
returned as a {@see Google\Cloud\Core\Int64} object for 32 bit
platform compatibility. **Defaults to** false.