gpt4 book ai didi

java - 在 gradle 中使用 Firebase 数据库

转载 作者:行者123 更新时间:2023-11-30 02:22:56 24 4
gpt4 key购买 nike

我正在尝试制作一个 gradle 脚本来上传一些使用 firebase 构建的数据。但我从 Firebase Java Admin SDK 收到一个奇怪的错误:-

Caused by: java.lang.NoSuchMethodError: org.json.JSONObject.<init>(Ljava/lang/String;)V
at com.google.firebase.auth.FirebaseCredentials$CertCredential.<init>(FirebaseCredentials.java:273)
at com.google.firebase.auth.FirebaseCredentials.fromCertificate(FirebaseCredentials.java:156)
at com.google.firebase.auth.FirebaseCredentials.fromCertificate(FirebaseCredentials.java:130)
at com.google.firebase.auth.FirebaseCredentials$fromCertificate.call(Unknown Source)
at eu.long1.jwnotes.gradleplugins.UploadTask.action(UploadTask.groovy:31)

任务是这样的:

class UploadTask extends DefaultTask {

String message = "Huray!"

@TaskAction
def action() {

String a = "private-key"

FirebaseOptions options = new FirebaseOptions.Builder()
.setCredential(FirebaseCredentials.fromCertificate(new ByteArrayInputStream(a.getBytes("UTF-8"))))
.setDatabaseUrl("https://jwnotes.firebaseio.com/")
.build()

FirebaseApp.initializeApp(options)


FirebaseDatabase.getInstance().getReference().child("alfa-gradle").setValue(message)
}
}

当我尝试申请运行任务时收到错误。

更新

这是我的插件 gradle 文件:

plugins {
id 'groovy'
id 'maven'
}

group 'eu.long1.jwnotes.gradleplugins'
version '1.0-SNAPSHOT'

repositories {
mavenCentral()
}

dependencies {
compile gradleApi()
compile localGroovy()
}

dependencies {
compile 'com.google.firebase:firebase-admin:5.3.1'
compile 'org.json:json:20160810'

}

sourceCompatibility = 1.8

jar {
into('lib') {
from 'lib'
}
}

最佳答案

您的运行时环境正在使用与 Firebase SDK 不兼容的另一个版本的 org.json:json 库。您需要确保它使用正确版本的 json library 。这通常需要检查依赖关系树,并显式排除一些不必要的依赖关系。

更新

以下内容对我有用:

buildscript {
repositories {
maven {
mavenCentral()
url uri('repo')
}
}
dependencies {
classpath group: 'net.hkj', name: 'gradle-task',
version: '1.0-SNAPSHOT'
}
dependencies {
classpath 'com.google.firebase:firebase-admin:5.3.1'
}
}

task greeting(type: net.hkj.UploadTask) {
}

我在 repo 目录中有包含已编译任务的 jar。在调用问候任务之前,我将您的任务实现放入 src/main/groovy/net/hkj/UploadTask.groovy 文件中,并将输出编译到 repo 目录中。

关于java - 在 gradle 中使用 Firebase 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46344666/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com