Java Firebase连接不工作
我一直在尝试将EclipseEE上的动态web项目连接到firebase。我已经上传了所有必需的依赖项(来自maven项目) 下面是我直接从Java上的firebase文档中使用的代码Java Firebase连接不工作,java,firebase,firebase-realtime-database,firebase-admin,Java,Firebase,Firebase Realtime Database,Firebase Admin,我一直在尝试将EclipseEE上的动态web项目连接到firebase。我已经上传了所有必需的依赖项(来自maven项目) 下面是我直接从Java上的firebase文档中使用的代码 public class FirebaseUpdater { public static void main(String[] args){ FileInputStream serviceAccount; try { serviceAccount = new
public class FirebaseUpdater {
public static void main(String[] args){
FileInputStream serviceAccount;
try {
serviceAccount = new
FileInputStream("C:/Users/Asus/workspace/school-dy2"
+ "/schoolbackup_service.json");
FirebaseOptions options = new FirebaseOptions.Builder()
.setCredentials(GoogleCredentials.fromStream(serviceAccount))
.setDatabaseUrl("https://schoolbackup-f2429.firebaseio.com/")
.build();
FirebaseApp.initializeApp(options);
// As an admin, the app has access to read and write all data,
//regardless of Security Rules
DatabaseReference ref = FirebaseDatabase.getInstance()
.getReference();
DatabaseReference attendance = ref.child("Attendance1");
attendance.setValueAsync("Debarred");
System.out.println(attendance.toString());
attendance.addListenerForSingleValueEvent(new ValueEventListener() {
public void onDataChange(DataSnapshot dataSnapshot) {
System.out.println("Datasnapshot Received");
Object document = dataSnapshot.getValue();
System.out.println(dataSnapshot.getKey());
}
public void onCancelled(DatabaseError error) {
}
});
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
我还使用了获取服务帐户密钥的正确过程(Firebase控制台->用户和权限->服务帐户->生成新私钥)
数据库安全规则也是公共的(这不是一个问题,因为我有服务帐户密钥):
项目编译成功,互联网连接没有问题
我还检查了工作区url。它正确地将我带到浏览器上的数据库
然而,尽管如此,我的项目似乎并没有连接到firebase和更新值
有人能告诉我可能出现什么问题吗?我在这里走到了死胡同
请注意,我使用的是EclipseEE(动态web项目),我直接导入了com.google.firebase(groupID)、firebase admin(artifactID)、6.2.0(version)的maven依赖项
是否我不能将maven依赖项用于动态web项目?服务帐户密钥方法是问题所在吗?是否有任何可能的解决方法
编辑:
我试着打印GoogleCredentials.fromStream(serviceAccount),看看有什么问题。这就是我得到的:
ServiceAccountCredentials{clientId=109785559732337174527, clientEmail=firebase-adminsdk-0into@schoolbackup-f2429.iam.gserviceaccount.com, privateKeyId=5512743509a43e1371cf88ec3feba4007abe4bf1, transportFactoryClassName=com.google.auth.oauth2.OAuth2Utils$DefaultHttpTransportFactory, tokenServerUri=https://accounts.google.com/o/oauth2/token, scopes=[], serviceAccountUser=null}
serviceAccountUser为空。这可能是个问题吗?如果是,我该如何解决它。否,正如我所说,项目编译成功。我感到困惑。您显示的代码看起来只是一个独立的java应用程序,而不是j2ee项目或任何类型的web应用程序。让我重新表述一下:您运行它时是否遇到任何错误?+Andre哦,对不起!不,我在运行它时绝对没有错误+Doug是的,它是一个独立的项目。然而,我开始它是一个动态的web项目,因此我提到了它
ServiceAccountCredentials{clientId=109785559732337174527, clientEmail=firebase-adminsdk-0into@schoolbackup-f2429.iam.gserviceaccount.com, privateKeyId=5512743509a43e1371cf88ec3feba4007abe4bf1, transportFactoryClassName=com.google.auth.oauth2.OAuth2Utils$DefaultHttpTransportFactory, tokenServerUri=https://accounts.google.com/o/oauth2/token, scopes=[], serviceAccountUser=null}