Spring Boot中的Firebase在初始化期间出现错误

我正在尝试在Spring

Boot应用中设置Firebase。我正在遵循此处文档中给出的代码段。这是我pom的样子:

<dependency>

<groupId>com.google.firebase</groupId>

<artifactId>firebase-admin</artifactId>

<version>5.2.0</version>

</dependency>

我运行以初始化Firebase的代码:

@PostConstruct

public void init() {

InputStream serviceAccount = FirebaseConfig.class.getClassLoader().getResourceAsStream(configPath);

FirebaseOptions options = null;

try {

options = new FirebaseOptions.Builder()

.setCredential(FirebaseCredentials.fromCertificate(serviceAccount))

.setDatabaseUrl(databaseUrl)

.build();

} catch (IOException e) {

e.printStackTrace();

}

FirebaseApp.initializeApp(options);

}

在启动时FirebaseApp.initializeApp抛出以下错误:

[ERROR] RunLoop:Firebase数据库运行循环(5.2.0)中未捕获的异常。请报告到firebase-database-

client@google.com

java.lang.NoSuchMethodError:org.json.JSONStringer.object()Lorg / json /

JSONWriter;

在com.google.firebase.database的com.google.firebase.database.util.JsonMapper.serializeJsonValue(JsonMapper.java:61)的com.google.firebase.database.util.JsonMapper.serializeJsonValue(JsonMapper.java:72)

.util.JsonMapper.serializeJson(JsonMapper.java:41)

我试图包括org.json但没有运气。

回答:

不知道您是否找到答案拉杰

我将通过排除Spring Boot的配置处理器引入的依赖关系来摆脱此错误,并且(尽管仅排除了第一个之后我再也没有看到此错误)也排除了Spring

Boot启动程序测试(如果使用):

<project>

...

<dependencies>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-configuration-processor</artifactId>

<version>1.5.8.RELEASE</version>

<scope>compile</scope>

<exclusions>

<exclusion>

<groupId>com.vaadin.external.google</groupId>

<artifactId>android.json</artifactId>

</exclusion>

</exclusions>

</dependency>

...

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-test</artifactId>

<version>1.5.8.RELEASE</version>

<scope>test</scope>

<exclusions>

<exclusion>

<groupId>com.vaadin.external.google</groupId>

<artifactId>android.json</artifactId>

</exclusion>

</exclusions>

</dependency>

...

</dependencies>

</project>

我尚未测试此确切的pom片段,因为我使用的是gradle而不是maven,但这应该是正确的。

我是怎么发现的

阅读您的问题和其他答案后,我开始研究“ org.json”包中JSONStringer类的潜在问题。所以我在想依赖org.json的依赖版本冲突

运行./gradlew dependencyInsight --dependency org.json,我收到:

org.json:json:20160810 -> 20140107

+--- com.google.cloud:google-cloud-core:1.7.0

| +--- com.google.cloud:google-cloud-storage:1.7.0

| | \--- com.google.firebase:firebase-admin:5.5.0

| | \--- compile

| +--- com.google.cloud:google-cloud-firestore:0.25.0-beta

| | \--- com.google.firebase:firebase-admin:5.5.0 (*)

| +--- com.google.cloud:google-cloud-core-http:1.7.0

| | +--- com.google.cloud:google-cloud-storage:1.7.0 (*)

| | \--- com.google.cloud:google-cloud-firestore:0.25.0-beta (*)

| \--- com.google.cloud:google-cloud-core-grpc:1.7.0

| \--- com.google.cloud:google-cloud-firestore:0.25.0-beta (*)

\--- com.google.firebase:firebase-admin:5.5.0 (*)

(*) - dependencies omitted (listed previously)

因此,只有google依赖项正在使用此软件包。我怀疑问题不是Google依赖关系中的版本冲突,因此我寻找了Spring与org.json

pacakage可能存在的冲突。

Google搜索“ Spring boot

org.json”使我想到了一个与json库冲突的Github问题。问题提到,由于需要“org.skyscreamer:jsonassert:1.4.0,请排除com.vaadin.external.google:android-json:0.0.20131108.vaadin1”,因此对于spring-boot-starter-test。

由此,我运行:`./gradlewdependencyInsight–dependency’com.vaadin.external.google’,它引用了’spring-boot-configuration-processor’。

以上是 Spring Boot中的Firebase在初始化期间出现错误 的全部内容, 来源链接: utcz.com/qa/400658.html

回到顶部