![](/img/trans.png)
[英]How can I convert my gwt app thats hosted on app-engine into a installable mobile app?
[英]How can I initialize firebase a spring-boot application hosted on google app-engine
我正在开发一个使用 spring-boot 作为后端的应用程序,它将数据存储在 Firebase 实时数据库中。
当我在本地运行该应用程序并将数据保存到数据库时运行良好,但是当我在应用程序引擎上部署它时,当我使用 Postman 发送请求时,我不断收到此错误
我已按照https://firebase.google.com/docs/admin/setup中描述的步骤设置项目。 我使用了服务帐户凭据,并在我的主要 java class 中引用了它们,如下所示:
FileInputStream serviceAccount =
new FileInputStream("src/main/resources/credentials.json");
FirebaseOptions options = new FirebaseOptions.Builder()
.setCredentials(GoogleCredentials.fromStream(serviceAccount))
.setProjectId("my project id")
.setDatabaseUrl("my database url")
.build();
FirebaseApp.initializeApp(options);
我还尝试将路径保存为环境变量,如下所示:
export GOOGLE_APPLICATION_CREDENTIALS="/home/user/Downloads/credentials.json"
它仍然无法在应用程序引擎上运行。 有人救我
这是一个棘手的问题。 环境变量GOOGLE_APPLICATION_CREDENTIALS
仅适用于 Google Cloud Engine 项目,不适用于 AppEngine。
一种解决方案是使凭证文件成为war
的一部分并使用ServletContext.getResourceAsStream
获取文件
我在 Maven 项目中使用此模式的一个示例。
警告:如果您将此战争文件推送到任何人工站点,凭据文件将作为战争文件的一部分向所有人公开。
希望这可以帮助。
我终于想出了解决办法。 带来问题的是我打包和部署项目的方式。 每次我部署新版本时,app-engine 中的 jar 文件都没有更新,这是因为我使用的命令。 所以显示错误是因为我的第一个版本没有凭据。
未更新 jar 文件的命令:
mvn appengine:deploy
更新我的 jar 文件的命令:
mvn clean package appengine:deploy -P cloud-gcp
我希望它可以帮助别人。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.