2017-05-30 3 views
1

Java Springアプリケーションを実行するHerokuインスタンスを使用してFirebase Admin SDKを初期化しようとしています。 Firebase命令は、.jsonファイルを直接参照します。Herokuを使用したFirebase Admin SDK

Initialize the Firebase Admin SDK

私は私のfirebase資格情報が露出したくないので、私は私のGitのレポに直接私の管理SDKのJSONファイルをインクルードする必要はありません。 Herokuの.json値にアクセスするには、Firebase Admin SDK .jsonファイルの内容で環境変数を作成しました。私はfirebaseを初期化しようとしたとき、それがクラッシュHerokuの中でアプリケーションを実行しようとすると

String serviceAccountJson = System.getenv("SERVICE_ACCOUNT_JSON"); 
InputStream serviceAccount = new ByteArrayInputStream(serviceAccountJson.getBytes(StandardCharsets.UTF_8)); 
FirebaseOptions options = new FirebaseOptions.Builder() 
    .setCredential(FirebaseCredentials.fromCertificate(serviceAccount))' 
    .setDatabaseUrl("https://forrent-youtube-live.firebaseio.com/") 
    .build(); 
FirebaseApp.initializeApp(options); 

:私は、このメソッドを使用して環境VARにアクセスすることによって、私の地元の開発環境とアプリの作品に同じことを行っています。

.gitリポジトリにはないが、Herokuサーバーで利用できる.jsonファイルにアクセスするための回避策やその他の方法はありますか?

答えて

0

私はなぜ覚えていないことができますが、このようなJSONのENV varに空白を修正する必要があります。

private static String massageWhitespace(String s) { 
    String newString = ""; 
    for (Character c : s.toCharArray()) { 
     if ("00a0".equals(Integer.toHexString(c | 0x10000).substring(1))) { 
      newString += " "; 
     } else { 
      newString += c; 
     } 
    } 
    return newString; 
} 

ここで私は同じ問題に実行していたworking example app

0

です。 jsonの特殊文字をthisのようなものでエスケープするだけです。

関連する問題