繁体   English   中英

带Heroku的Firebase Admin SDK

[英]Firebase Admin SDK with Heroku

我正在尝试使用运行Java Spring应用程序的Heroku实例来初始化Firebase Admin SDK。 Firebase指令直接引用.json文件。

初始化Firebase Admin SDK

我不想直接在我的git repo中包含我的管理SDK json文件,因为我不想公开我的Firebase凭据。 要访问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://myfirebase-app.firebaseio.com/")
    .build();
FirebaseApp.initializeApp(options);

当我尝试在Heroku中运行该应用程序时,firebase尝试初始化时该应用程序崩溃。

是否有其他解决方法或其他方法来访问不在.git存储库中但可在Heroku服务器上使用的.json文件?

我不记得为什么,但是您需要像这样修复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;
}

这是一个工作示例应用程序

我遇到了同样的问题。 你只需要逃避的任何特殊字符json的东西像这样

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM