環境
サーバー:AWS EC2
WEBサーバー:apache
バックエンド:laravel
フロントエンド:Vue.js
application_default_credentials.json
{ "type": "service_account", "project_id": "xxxxx", "private_key_id": "yyyy", "private_key": "-----BEGIN PRIVATE KEY-----(省略)-----END PRIVATE KEY-----\n", "client_email": "firebase-adminsdk-bnptr@xxxxx.iam.gserviceaccount.com", "client_id": "(省略)", "auth_uri": "https://accounts.google.com/o/oauth2/auth", "token_uri": "https://oauth2.googleapis.com/token", "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/firebase-adminsdk-bnptr%40xxxxx.iam.gserviceaccount.com" }
.env
(省略) FIREBASE_CREDENTIALS=../application_default_credentials.json
[ec2-user@ip-10-0-1-7 html]$ ls -al 合計 1036 drwxr-xr-x 13 ec2-user ec2-user 4096 10月 14 12:12 . drwxr-xr-x 3 root root 4096 10月 13 06:41 .. -rw-r--r-- 1 ec2-user ec2-user 776 10月 14 11:54 .env -rw-r--r-- 1 ec2-user ec2-user 790 10月 13 09:18 .env.development drwxr-xr-x 8 ec2-user ec2-user 4096 10月 13 06:54 app -rw-r--r-- 1 ec2-user ec2-user 2337 10月 13 07:08 application_default_credentials.dev.json -rw-r--r-- 1 ec2-user ec2-user 2337 10月 14 11:54 application_default_credentials.json
$ ssh -i kajimama-dev.pem ec2-user@(省略) Last login: Mon Oct 14 11:52:32 2019 from (省略).tkyo.nt.ngn.ppp.infoweb.ne.jp __| __|_ ) _| ( / Amazon Linux AMI ___|\___|___| https://aws.amazon.com/amazon-linux-ami/2018.03-release-notes/ 4 package(s) needed for security, out of 10 available Run "sudo yum update" to apply all updates. [ec2-user@ip-10-0-1-7 ~]$ httpd -v Server version: Apache/2.4.39 (Amazon) Server built: Apr 5 2019 18:55:17 [ec2-user@ip-10-0-1-7 ~]$ php -v PHP 7.1.32 (cli) (built: Sep 11 2019 00:43:25) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies with Zend OPcache v7.1.32, Copyright (c) 1999-2018, by Zend Technologies
フロントエンドはCircleCIでビルドしています。
.circleci/config.yml
(省略) jobs: build: docker: - image: circleci/node:8.11.4 (省略)
やりたいこと
フロントエンドでfirebaseに登録したアカウント情報を
バックエンドで取得したい。
問題
バックエンドで以下のエラーが発生する
[2019-10-14 20:55:21] development.ERROR: Kreait\Firebase\ServiceAccount\Discovery\FromEnvironmentVariable: The environment variable "FIREBASE_CREDENTIALS" is not set. Kreait\Firebase\ServiceAccount\Discovery\FromEnvironmentVariable: The environment variable "GOOGLE_APPLICATION_CREDENTIALS" is not set. Kreait\Firebase\ServiceAccount\Discovery\FromGoogleWellKnownFile: The well known file is not readable or invalid {"exception":"[object] (Kreait\Firebase\Exception\ServiceAccountDiscoveryFailed(code: 0): Kreait\Firebase\ServiceAccount\Discovery\FromEnvironmentVariable: The environment variable \"FIREBASE_CREDENTIALS\" is not set. Kreait\Firebase\ServiceAccount\Discovery\FromEnvironmentVariable: The environment variable \"GOOGLE_APPLICATION_CREDENTIALS\" is not set. Kreait\Firebase\ServiceAccount\Discovery\FromGoogleWellKnownFile: The well known file is not readable or invalid at /var/app/current/vendor/kreait/firebase-php/src/Firebase/ServiceAccount/Discoverer.php:48)
フロントエンドから登録したメールアドレスは、firebaseに登録出来ています。
試したこと
(1)ローカルで同様の環境を構築して、同じソースで試してみた。
→正常完了
(2)ローカル環境で有効な、application_default_credentials.jsonをサーバーに設置して試してみた
→同様のエラー
(3)ServiceAccount::fromJsonFileで直接サーバー上のjsonファイルを指定して、Firebaseオブジェクトを生成して、テストコードを実施。
→成功
御願い
試すべき事があれば教えてください。
追加で必要な情報があれば、教えてください。
問題点があれば、教えてください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。