如何调整我的 .jar 配置,以在AppEngine上读取Firebase .json 文件?
AppEngine无法读取 .json 文件来对Java / Kotlin应用程序中的Firebase进行身份验证。独立运行时,可以在 .jar 文件中正确读取.json文件。将 .jar 提供给AppEngine时,无法读取它。
Exception in thread "main" java.io.FileNotFoundException: src/main/kotlin/utils/auth/carpecoin-media-211617-firebase-adminsdk-5d3ii-574c2a8dd4.json (No such file or directory)
at java.io.FileInputStream.open0(Native Method)
at java.io.FileInputStream.open(FileInputStream.java:195)
at java.io.FileInputStream.<init>(FileInputStream.java:138)
at java.io.FileInputStream.<init>(FileInputStream.java:93)
at Initialization.initializeFirestore(Initialization.kt:16)
at Initialization.main(Initialization.kt:10)
答案 0 :(得分:2)
作为AppEngine错误的解决方法,我创建了一个对象,该对象包含从FirebaseCredentialsHelper类构建的Firebase身份验证数据。返回的对象使用从Firebase控制台生成的String值。
然后,我使用Gson library将FirebaseCredentialsHelper类返回的身份验证对象转换为json,然后转换为字节输入流。
FirebaseApp.initializeApp(FirebaseOptions.Builder()
.setCredentials(GoogleCredentials.fromStream(Gson().toJson(FirebaseCredentialsHelper.get()).byteInputStream()))
.build())
注意:我将Firebase身份验证对象排除在版本控制之外,因为它们包含私人信息。