質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Firebase

Firebaseは、Googleが提供するBasSサービスの一つ。リアルタイム通知可能、並びにアクセス制御ができるオブジェクトデータベース機能を備えます。さらに認証機能、アプリケーションのログ解析機能などの利用も可能です。

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

Q&A

解決済

1回答

2062閲覧

EC2上のlaravelからのfirebase接続のエラー

akihiro0117

総合スコア32

Firebase

Firebaseは、Googleが提供するBasSサービスの一つ。リアルタイム通知可能、並びにアクセス制御ができるオブジェクトデータベース機能を備えます。さらに認証機能、アプリケーションのログ解析機能などの利用も可能です。

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

0グッド

0クリップ

投稿2019/10/14 12:20

編集2019/10/27 05:05

環境

サーバー: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オブジェクトを生成して、テストコードを実施。
→成功

御願い

試すべき事があれば教えてください。
追加で必要な情報があれば、教えてください。
問題点があれば、教えてください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

httpd.confに以下を記載して解決しました。

SetEnv FIREBASE_CREDENTIALS ../application_default_credentials.json

投稿2019/10/27 21:05

akihiro0117

総合スコア32

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問