FileInputStream serviceAccount =
new FileInputStream("push-manager-app/src/main/resources/serviceAccountKey.json");
FirebaseOptions options = new FirebaseOptions.Builder()
.setCredentials(GoogleCredentials.fromStream(serviceAccount))
.setDatabaseUrl("https://test1-use.firebaseio.com")
.build();
FirebaseApp.initializeApp(options);
Firebase
连接器的上述代码工作正常。但在openshift
环境中,我不能在资源中提交serviceAccountKey.json
,因为不同的环境会有所不同。我可以在每个环境中从openshift
配置映射中获得它作为String
。
为了运行这个代码块,我需要在FileInputStream
中转换String
。我不知道该怎么做。我有一个变通方法,可以读取String
,生成文件并使用它。但我想用正确的方法。我检查了Firebase
API的其他选项,但它甚至不能处理InputStream
。
String json = "xxxxxx";
InputStream stream = new ByteArrayInputStream(json.getBytes(StandardCharsets.UTF_8));
private static InputStream getFile() {
return FireBaseService.class.getResourceAsStream("/dataCred.json");
}
private static final String DATABASE_URL = "DATABASE_URL";
public static void initiainzeSDK() {
try {
FirebaseOptions options = new FirebaseOptions.Builder()
.setCredentials(GoogleCredentials.fromStream(getFile()))
.setDatabaseUrl(DATABASE_URL)
.build();
FirebaseApp.initializeApp(options);
// Initialize the default app
} catch (IOException e) {
System.out.println(e.getMessage());
}
}
确保你的json文件没有错误的语法