使用Heroku的Firebase Admin SDK
问题描述:
我尝试使用运行Java Spring应用程序的Heroku实例初始化Firebase Admin SDK。 Firebase说明直接引用.json文件。使用Heroku的Firebase Admin SDK
Initialize the Firebase Admin SDK
我不想直接包括我的管理SDK JSON文件在我的git仓库,因为我不希望我的火力点暴露的凭据。要访问Heroku中的.json值,我已经创建了一个环境变量,其中包含Firebase Admin SDK .json文件的内容。我在当地的发展环境做同样的事情和应用程序的工作原理是使用这种方法访问环境VAR:
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);
当我试图运行在Heroku的应用程序时,火力试图初始化它崩溃。
是否有任何解决方法或其他方法来访问不在.git仓库中但在Heroku服务器上可用的.json文件?
答
我不记得为什么,但你需要修复的空白在JSON的环境变量是这样的:
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